+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.
- (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
}
}
+- (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.