Hi all,

I have a view where I set the cursor in a mouse moved event, when the mouse is 
over certain places in my view (resize handles for objects). This works fine, 
but sometimes I need to add some subviews to this view, and for some reason, 
when I do, it stops setting the cursors in some of the places where it should.

I put a breakpoint on -[NSCursor set] and notice that when I have the other 
subviews present, it uses cursorUpdate (as per the trace below), whereas when I 
don't have my subviews there, it doesn't. I have stripped my subviews back to 
ensure that they don't have any cursor tracking or cursor updates active, but 
it still makes no difference. I also have some text views as subviews, and they 
seem to make no difference to my cursor settings.

I believe that the loss of the cursor updates may have something to do with the 
way I draw the superview, but am not sure what may affect it. Most of the 
drawing code is fairly straightforward, with bezier paths, fills, some images 
etc., and only a couple of places where I save and restore the graphics state 
so that I can do some clipping. I do have some places where I need to drop back 
to a CGContext for some shadow and transparency work.

I tried setting my mouse moved so that it always set the cursor to an up/down 
arrow cursor, but when I had the subviews present, the cursor still changed 
back to the arrow cursor.

What things should I be looking at when tracking this down? I thought that the 
candidates would be anything using tracking rectangles, tracking areas, or 
mousemoved tracking, or anything else that explicitly sets the cursor. I think 
I have pretty much eliminated these as the cause. Then I thought it may be 
clipping paths or graphics states, but I can't see anything likely looking 
there.

Any suggestions of things to check would be very welcome.


...and here's the trace when I have the subview in place - otherwise it is just 
set from the mousemoved.

#0  0x00007fff87cda4e5 in -[NSCursor set] ()
#1  0x00007fff87d0fd6e in forwardMethod ()
#2  0x00007fff87d0fada in -[NSView cursorUpdate:] ()
#3  0x00007fff87d0fd6e in forwardMethod ()
#4  0x00007fff87d0fada in -[NSView cursorUpdate:] ()
#5  0x00007fff87d0fd6e in forwardMethod ()
#6  0x00007fff87d0fada in -[NSView cursorUpdate:] ()
#7  0x00007fff87d0fd6e in forwardMethod ()
#8  0x00007fff87d0fada in -[NSView cursorUpdate:] ()
#9  0x00007fff87d0fd6e in forwardMethod ()
#10 0x00007fff87d0fada in -[NSView cursorUpdate:] ()
#11 0x00007fff87d0fd6e in forwardMethod ()
#12 0x00007fff87d0fada in -[NSView cursorUpdate:] ()
#13 0x00007fff87d0fd6e in forwardMethod ()
#14 0x00007fff87d0fada in -[NSView cursorUpdate:] ()
#15 0x00007fff87d0fd6e in forwardMethod ()
#16 0x00007fff87d0fada in -[NSView cursorUpdate:] ()
#17 0x00007fff87d0ea4e in _handleInvalidCursorRectsNote ()
#18 0x00007fff84ec80d7 in __CFRunLoopDoObservers ()
#19 0x00007fff84ea3f84 in __CFRunLoopRun ()
#20 0x00007fff84ea38df in CFRunLoopRunSpecific ()
#21 0x00007fff8108bada in RunCurrentEventLoopInMode ()
#22 0x00007fff8108b83d in ReceiveNextEventCommon ()
#23 0x00007fff8108b798 in BlockUntilNextEventMatchingListInMode ()
#24 0x00007fff87ce3a2a in _DPSNextEvent ()
#25 0x00007fff87ce3379 in -[NSApplication 
nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#26 0x00007fff87ca905b in -[NSApplication run] ()
#27 0x0000000100410774 in -[OAApplication run] ()
#28 0x00007fff87ca1d7c in NSApplicationMain ()
#29 0x0000000100001ec7 in main (argc=3, argv=0x7fff5fbff440) at 
/Users/gideon/Development/svn/trunk/mac/Source/main.m:11

Thanks

Gideon




_______________________________________________

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 arch...@mail-archive.com

Reply via email to