|
From: | Wolfgang Lux |
Subject: | Re: [Gnustep-cvs] r31864 - in /libs/gui/trunk: ChangeLog Source/NSSavePanel.m |
Date: | Tue, 11 Jan 2011 08:51:05 +0100 |
Gregory Casamento wrote:
Fred, I understand what you're saying, but I'm not sure what to do to correct it. I admit I had a feeling when I made this commit that there must be a better way of doing this. Something, perhaps, more centralized is needed. NSMenuView, as you suggested, does seem like the right place. After some research it looks like _executeItemAtIndex:removeSubmenu: might be a good candidate for this to be located centrally. Let me know what you think.
I think the main problem is that NSMenuView's event tracking loop is too autistic. On one hand it accepts only mouse events during event tracking, but on the other hand it does not communicate this information to the window manager and so the user can freely move or close windows while the loop is active. This is absolutely inconsistent. Either we must also grab the mouse at the level of the X server during the event tracking, or the event tracking loop must handle AppKit generated events like window close and window move events. Personally, I'd prefer the latter, since grabbing would make it impossible to enter a debugging session in the event loop (at least without a second machine), but the former may be easier to implement.
Wolfgang
[Prev in Thread] | Current Thread | [Next in Thread] |