smooth transitions between menus ? (extend XEmbed ?)

Mildred ml.mildred593 at online.fr
Sun Dec 23 01:49:19 PST 2007


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:	<mildred at jabber.fr> (GoogleTalk, Jabber)

GPG:	197C A7E6 645B 4299 6D37 684B 6F9D A8D6 [9A7D 2E2B]


More information about the xdg mailing list