Hello List,I have a custom NSView that draws a number of rectangles of different heights, overlapping 1 pixel on the left and right edge. Each rectangle gets its own tracking area
NSTrackingAreaOptions opts = (NSTrackingMouseEnteredAndExited | NSTrackingActiveInKeyWindow); NSDictionary *dict = <Dictionary with 2 entries>; NSTrackingArea *ta = [[NSTrackingArea alloc] initWithRect:rect options:opts owner:self userInfo:dict]; [self addTrackingArea:ta];The -mouseEntered and -mouseExited messages are being fired, causing a redraw of the view. Everything works nicely with a low number of areas (10).
When the number of bars increases to more than 20, there is a visible lag between mouse movement and the location that is being redrawn. The more areas there are the greater the lag.
The result is that the view redraws an area (highlighting a bar) that the mouse passed long ago (up to 1 second and more, depending on the bar count).
I have double (quadruple actually) checked that the redrawing is not the problem, the view draws very quickly. When the mouse is being dragged over the view, the same series of redrawing events is completely instant up to a bar count of more than 200. I've even completely disabled redrawing as a result of tracking area events and the lag is still there. So the drawing is not causing the lag.
My suspicion is that only one (or a very small number) of tracking area events are being fired for a view in each run loop cycle (or some other limitation with respect to the number of tracking area events that can be delivered instantly). That would explain the visible lag with greater numbers of areas (thus events). This would explain why the events keep coming in in an asynchronous fashion.
I have two questions: 1) Is this a known problem/limitation or is it my fault?2) Is there a way to cancel tracking area events? Some way to ask the system not to fire a tracking event when a new event has arrived prior to the delivery of an existing one?
Thanks! Regards Markus -- __________________________________________ Markus Spoettl
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]