Reviewed by Kristin Forster.
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 21 Jan 2005 22:43:54 +0000 (22:43 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 21 Jan 2005 22:43:54 +0000 (22:43 +0000)
        - fixed <rdar://problem/3964972> update _initWithCGSEvent:eventRef: call in mouse moved workaround (breaks cursors in Carbon WebKit applications)

        * Carbon.subproj/HIWebView.m: (MouseMoved): Instead of munging the event record's window number directly
        before calling _initWithCGSEvent, on Tiger we call _eventRelativeToWindow on the event after creating it.
        Also added a check so that with Macromedia Contribute's workaround in place we don't do anything at all
        to the event. Tested with both Contribute and CarbonWeb.

        * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8428 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKit/Carbon.subproj/HIWebView.m
WebKit/ChangeLog
WebKit/English.lproj/StringsNotToBeLocalized.txt

index d13e5df76f26e04b44ff99fbb793e03bd5fc9887..f37e659ae36466b4c978dbb8824a010b2ad846ab 100644 (file)
@@ -45,6 +45,7 @@ typedef struct HIWebView HIWebView;
 
 @interface NSEvent( Secret )
 - (NSEvent *)_initWithCGSEvent:(CGSEventRecord)cgsEvent eventRef:(void *)eventRef;
+- (NSEvent *)_eventRelativeToWindow:(NSWindow *)aWin;
 @end
 
 @interface NSView( Secret )
@@ -514,12 +515,9 @@ Click( HIWebView* inView, EventRef inEvent )
        
        kitEvent = [[NSEvent alloc] _initWithCGSEvent:(CGSEventRecord)eventRec eventRef:(void *)newEvent];
 
-//     targ = [[inView->fKitWindow _borderView] hitTest:[kitEvent locationInWindow]];
-
     if ( !inView->fIsComposited )
         StartUpdateObserver( inView );
         
-//     [targ mouseDown:kitEvent];
     [inView->fKitWindow sendEvent:kitEvent];
 
     if ( !inView->fIsComposited )
@@ -540,16 +538,11 @@ MouseUp( HIWebView* inView, EventRef inEvent )
 {
        CGSEventRecord                  eventRec;
        NSEvent*                                kitEvent;
-//     NSView*                                 targ;
        
        WebGetEventPlatformEventRecord( inEvent, &eventRec );
        RetainEvent( inEvent );
        kitEvent = [[NSEvent alloc] _initWithCGSEvent:(CGSEventRecord)eventRec eventRef:(void *)inEvent];
 
-//     targ = [[inView->fKitWindow _borderView] hitTest:[kitEvent locationInWindow]];
-
-//     [targ mouseUp:kitEvent];
-
     [inView->fKitWindow sendEvent:kitEvent];
        
     [kitEvent release];
@@ -566,27 +559,31 @@ MouseMoved( HIWebView* inView, EventRef inEvent )
 {
        CGSEventRecord                  eventRec;
        NSEvent*                                kitEvent;
-//     NSView*                                 targ;
        
        WebGetEventPlatformEventRecord( inEvent, &eventRec );
        RetainEvent( inEvent );
 
-#define WORK_AROUND_3585644
-#ifdef WORK_AROUND_3585644
+#define WORK_AROUND_3585644 1
+#if WORK_AROUND_3585644 && BUILDING_ON_PANTHER
     int windowNumber = [inView->fKitWindow windowNumber];
     CGSWindowID *winID = (void *)windowNumber;
     eventRec.window = winID;
 #endif
     
-       kitEvent = [[NSEvent alloc] _initWithCGSEvent:(CGSEventRecord)eventRec eventRef:(void *)inEvent];
-
-//     targ = [[inView->fKitWindow _borderView] hitTest:[kitEvent locationInWindow]];
+       kitEvent = [[[NSEvent alloc] _initWithCGSEvent:eventRec eventRef:inEvent] autorelease];
+
+#if WORK_AROUND_3585644 && !BUILDING_ON_PANTHER
+    // We preflight here and don't do any work when the window is already correct
+    // because _eventRelativeToWindow will malfunction if the event's window method
+    // has been hijacked by the bug workaround used by Contribute. It's fine to just
+    // leave the event alone if the window is already correct.
+    if ([kitEvent window] != inView->fKitWindow) {
+        kitEvent = [kitEvent _eventRelativeToWindow:inView->fKitWindow];
+    }
+#endif
 
-//     [targ mouseMoved:kitEvent];
     [inView->fKitWindow sendEvent:kitEvent];
 
-       [kitEvent release];
-       
        return noErr;
 }
 
@@ -599,15 +596,11 @@ MouseDragged( HIWebView* inView, EventRef inEvent )
 {
        CGSEventRecord                  eventRec;
        NSEvent*                                kitEvent;
-//     NSView*                                 targ;
     
        WebGetEventPlatformEventRecord( inEvent, &eventRec );
        RetainEvent( inEvent );
        kitEvent = [[NSEvent alloc] _initWithCGSEvent:(CGSEventRecord)eventRec eventRef:(void *)inEvent];
 
-//     targ = [[inView->fKitWindow _borderView] hitTest:[kitEvent locationInWindow]];
-
-//     [targ mouseDragged:kitEvent];
     [inView->fKitWindow sendEvent:kitEvent];
 
        [kitEvent release];
@@ -624,15 +617,11 @@ MouseWheelMoved( HIWebView* inView, EventRef inEvent )
 {
        CGSEventRecord                  eventRec;
        NSEvent*                                kitEvent;
-//     NSView*                                 targ;
        
        WebGetEventPlatformEventRecord( inEvent, &eventRec );
        RetainEvent( inEvent );
        kitEvent = [[NSEvent alloc] _initWithCGSEvent:(CGSEventRecord)eventRec eventRef:(void *)inEvent];
 
-//     targ = [[inView->fKitWindow _borderView] hitTest:[kitEvent locationInWindow]];
-
-//     [targ scrollWheel:kitEvent];
     [inView->fKitWindow sendEvent:kitEvent];
 
        [kitEvent release];
index f6ea77b052c3eebb0f02acf883229a1074940f8b..cb83ede382ace58a68cd36a3a1090f5a698db7d6 100644 (file)
@@ -1,3 +1,16 @@
+2005-01-20  Darin Adler  <darin@apple.com>
+
+        Reviewed by Kristin Forster.
+
+        - fixed <rdar://problem/3964972> update _initWithCGSEvent:eventRef: call in mouse moved workaround (breaks cursors in Carbon WebKit applications)
+
+        * Carbon.subproj/HIWebView.m: (MouseMoved): Instead of munging the event record's window number directly
+        before calling _initWithCGSEvent, on Tiger we call _eventRelativeToWindow on the event after creating it.
+        Also added a check so that with Macromedia Contribute's workaround in place we don't do anything at all
+        to the event. Tested with both Contribute and CarbonWeb.
+
+        * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
+
 2005-01-20  Richard Williamson   <rjw@apple.com>
 
        Fixed <rdar://problem/3815672> REGRESSION (Mail): Japanese text cannot be made bold
index a818d58917ba6b5de0b78e7c62f597135c66e05b..9bdb45db4a860b0ae08374c743222aa38486f0cd 100644 (file)
@@ -25,7 +25,9 @@
 ")].,;:?\'!\"%*-/}"
 ","
 "- %s:%d %s - "
+"-1px"
 "/"
+"/%@"
 "/<!--frame%d-->-->"
 "/Frameworks/PDFKit.framework"
 "/Library/Internet Plug-Ins"
 "13"
 "16"
 "1800"
+"1px"
 "4"
-"4194304"
 "7"
+"8388608"
 "9"
 ":"
 "://"
@@ -80,7 +83,6 @@
 "Content-Length"
 "Courier"
 "DOCBASE"
-"DelayTime"
 "DirectionAL"
 "DirectionAN"
 "DirectionB"
 "WebKitSansSerifFont"
 "WebKitSerifFont"
 "WebKitShouldPrintBackgroundsPreferenceKey"
+"WebKitShowsURLsInToolTips"
 "WebKitStandardFont"
 "WebKitTabToLinksPreferenceKey"
 "WebKitUserStyleSheetEnabledPreferenceKey"
 "WebProgressStartedNotification"
 "WebResourceData"
 "WebResourceFrameName"
+"WebResourceHandler"
 "WebResourceMIMEType"
 "WebResourceTextEncodingName"
 "WebResourceURL"
 "html"
 "http"
 "https"
+"image/gif"
 "image/pict"
 "image/pjpeg"
 "image/tiff"
 "webplugin"
 "x"
 "x-apple-web-kit/"
-"{GIF}"
 "~/Library/Icons"
 DOM.subproj/WebDOMOperations.m:"background"
 DOM.subproj/WebDOMOperations.m:"data"