[Xevie] Re: Invitation to a discussion about an External Event
Manager
Keith Packard
keithp at keithp.com
Tue Sep 14 11:17:36 PDT 2004
Around 10 o'clock on Sep 14, Deron Johnson wrote:
> In my event system, all grab processing is done in the Display Server.
> I do this so that grab processing for X apps and PLG-aware apps are
> integrated together. So my display server would need to participate
> somehow in the multi-level redirection protocol. If you could send me
> a preliminary spec of how you see multi-level redirection working I can
> better evaluate how it fits in with what I'm doing.
(this isn't really well considered, just a collection of thoughts I've had
over the last week).
Here's how the X server does (pointer) event processing today:
1) Compute the sprite trace for the current pointer position
2) Walk the tree from root to lowest-enclosing window looking for
grabs
3) When no window grabs the event, walk back up the tree from
lowest enclosing to root looking for regular event selection
I suggest that 'event redirection' be integrated alongside the grab
processing code and occur just before it at each level of the window
hierarchy. This makes redirection respect grabs on superior windows, which
like the right semantic to me.
Keyboard processing is identical, except that the 'focus trace' is used
instead of the 'sprite trace' (the focus trace is complicated by
OwnerEvents and PointerRoot focus mode).
Some other semantics wrinkles:
1) Events sent to grabbed devices *still need redirection*, if the
grab window is a descendent of a redirection window.
2) EnterNotify et al. need to have 'corrected' coordinates, and be
generated at the right times for redelivered events.
I'm sure there are lots of other issues here; let's figure out the
semantics that we think are correct and then just give it a try and see
how the code looks.
-keith
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
Url : http://freedesktop.org/pipermail/xevie/attachments/20040914/355b061f/attachment.pgp
More information about the xevie
mailing list