Reviewed by Chris.
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 5 Nov 2004 18:00:25 +0000 (18:00 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 5 Nov 2004 18:00:25 +0000 (18:00 +0000)
        - fixed <rdar://problem/3857151> Assertion failure in "trackingRectOwner" while moving mouse over Slashdot.org page

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]): Changed to no longer call
        addTrackingRect to do the work for consistency with the new method below. Not too much copied and pasted code.
        (-[WebHTMLView _addTrackingRects:owner:userDataList:assumeInsideList:trackingNums:count:]): Added an override
        for this new method in Tiger. No harm in implementing it on Panther, although it won't be called.
        (-[WebHTMLView _removeTrackingRects:count:]): Ditto.

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

WebKit/ChangeLog
WebKit/WebView.subproj/WebHTMLView.m

index 0adb7d6..5d5df3e 100644 (file)
@@ -1,3 +1,16 @@
+2004-11-05  Darin Adler  <darin@apple.com>
+
+        Reviewed by Chris.
+
+        - fixed <rdar://problem/3857151> Assertion failure in "trackingRectOwner" while moving mouse over Slashdot.org page
+
+        * WebView.subproj/WebHTMLView.m:
+        (-[WebHTMLView _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]): Changed to no longer call
+        addTrackingRect to do the work for consistency with the new method below. Not too much copied and pasted code.
+        (-[WebHTMLView _addTrackingRects:owner:userDataList:assumeInsideList:trackingNums:count:]): Added an override
+        for this new method in Tiger. No harm in implementing it on Panther, although it won't be called.
+        (-[WebHTMLView _removeTrackingRects:count:]): Ditto.
+
 2004-11-04  David Hyatt  <hyatt@apple.com>
 
        Make sure the dominant line direction is properly set for RTL runs so that spaces will reverse.
index 01b2c26..4ac9282 100644 (file)
@@ -676,7 +676,19 @@ static WebHTMLView *lastHitView = nil;
 - (NSTrackingRectTag)_addTrackingRect:(NSRect)rect owner:(id)owner userData:(void *)data assumeInside:(BOOL)assumeInside useTrackingNum:(int)tag
 {
     ASSERT(tag == TRACKING_RECT_TAG);
-    return [self addTrackingRect:rect owner:owner userData:data assumeInside:assumeInside];
+    ASSERT(_private->trackingRectOwner == nil);
+    _private->trackingRectOwner = owner;
+    _private->trackingRectUserData = data;
+    return tag;
+}
+
+- (void)_addTrackingRects:(NSRect *)rects owner:(id)owner userDataList:(void **)userDataList assumeInsideList:(BOOL *)assumeInsideList trackingNums:(NSTrackingRectTag *)trackingNums count:(int)count
+{
+    ASSERT(count == 1);
+    ASSERT(trackingNums[0] == TRACKING_RECT_TAG);
+    ASSERT(_private->trackingRectOwner == nil);
+    _private->trackingRectOwner = owner;
+    _private->trackingRectUserData = userDataList[0];
 }
 
 - (void)removeTrackingRect:(NSTrackingRectTag)tag
@@ -687,6 +699,15 @@ static WebHTMLView *lastHitView = nil;
     }
 }
 
+- (void)_removeTrackingRects:(NSTrackingRectTag *)tags count:(int)count
+{
+    ASSERT(count == 1);
+    ASSERT(tags[0] == TRACKING_RECT_TAG);
+    if (count == 0)
+        return;
+    [self removeTrackingRect:TRACKING_RECT_TAG];
+}
+
 - (void)_sendToolTipMouseExited
 {
     // Nothing matters except window, trackingNumber, and userData.