Hi, Thanks for the answer, I can see that it's not an easy issue, unfortunately. There is still work to do.
Le Sat 22/12/2007 à 23:38 Ryan Lortie à écrit: > i've currently dropped all work on this project. the one change that > i actually made was a modification to gtk to allow intercepting the > case where the user navigates the menus with the keyboard and "falls > off the end". > > dealing with the mouse is going to be quite a lot more difficult. > having menus open requires a mouse grab and therefore there is no way > for another applet to tell when the mouse rolls over its area and say > "hey! give me the menu control!" > > i've given some thought to how this might cleverly occur between > various coordinating applications but it seems like the best approach > is a change to X to support making grabs less like "exclusive grab" > and more like "filter". if you want to keep the event, good... if > not, then you have some mechanism to re-inject it into the server's > normal event handling chain... I think too it would be a great idea. Because this behaviour causes others "bugs". For example, another issue would be that global GNOME shortcuts (like raising the volume, special keys on my keyboard) no longer work once I've opened a menu. So do you think this is possible to change that in Xorg ? Or maybe avoiding grabbing the cursor could be possible ... But I don't know how it could be possible since we still have to detect when the mouse is clicked outside of the menu to close it. > at guadec this year we had a talk with some of the X guys where they > asked us if we have any requests for features and this is one of the > items that came up. i'm not sure where that effort is at the moment. > > if i were to do this right now i'd do something like this: > > - there is some "in charge" applet that hold the menu focus > - for all mouse movement events that it isn't interested in, it > forwards them to the panel > - the panel knows about the areas occupied by each applet > - if the panel sees that a mouse event has moved over top of another > applet then ((magic)) and it tells that applet to take control > > the communication could occur over X messages or dbus. That seems quite complicated ... I looked at XGrabPointer manual and it seems there is already an event mask. So if i understand how it works, when the pointer is grabbed, all events are reserved for the window that grabbed the pointer but only the selected events are passed to it. Wouldn't it be possible (without changing too much things) to add an option in X11 to allow events not selected by the event mask to be passed to others windows. I mean, can the Xorg team do that (or accept a patch to do that even if I don't think I'm the one who can do this). Or maybe another solution ... Isn't it possible to generate fake events in X11 ? If so, maybe instead of using X messages or dbus to forward events, the menu that grab the pointer could generate events for the motion (and possibly others events) outside the menu window. Well, maybe everything that I say isn't relevant at all, I don't know well this topic. But I would like to progress on this issue (along with others issues too). Somehow, I think that our current free desktops are lacking integration between all the applications, especially when you're looking at mac OS X. I had the opportunity to look at it and I would really want our desktops to be as integrated as mac OS. But I'm not blaming anyone ... It's easy to do it with mac OS because there is a single entity that decides how everything should be, but when we want everyone to collaborate, it takes some more time :/ Thanks for the information you provided :) Mildred -- Mildred Ki'lya E-Mail: mildred593(at)online.fr Site: <http://mildred632.free.fr/> XMPP: <[EMAIL PROTECTED]> (GoogleTalk, Jabber) GPG: 197C A7E6 645B 4299 6D37 684B 6F9D A8D6 [9A7D 2E2B] _______________________________________________ xdg mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/xdg
