On Nov 15, 2012, at 17:55 , Kyle Sluder <k...@ksluder.com> wrote:

> In particular, I'm concerned about -updateTrackingAreas. This message is
> sent to the view, not the tracking area's owner, but the view itself
> doesn't know about the tracking area. If the owner doesn't happen to be
> a view in the same hierarchy, it's not guaranteed to have
> -updateTrackingAreas called.

A comment squirreled away in the Event Handling guide:

        
https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/EventOverview/TrackingAreaObjects/TrackingAreaObjects.html

might be relevant to your question. It says:

> "Note that the Application Kit sends updateTrackingAreas to every view 
> whether it has a tracking area or not."

If that's so, there'd only be a difficulty if the owner isn't a view.

> Additionally, if the owner is a view, it doesn't receive any information
> via -mouse{Entered,Exited,Moved}: or -cursorUpdate: to differentiate its
> own mouse actions from those of the tracking area. (Yes, there's the
> userInfo property of NSTrackingArea that gets attached to the NSEvent
> argument passed to the tracking area owner—*unless* it's a mouse-moved
> event in which case it doesn't!).

If the view to which the tracking area is attached is a subview of the owner, 
then I'd guess this isn't much of a problem**. In more complicated cases, the 
owner is likely keeping track of the inside/outside state anyway, which means 
it can tell the mouse-moved events apart if it needs to (and it can also 
distinguish them with a straightforward "point in rect" test, can't it?**).


** Assuming the code is careful to convert to the right coordinate system.

_______________________________________________

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to