XComposite input redirection/transformation proposal
Rémi Cardona
remi at gentoo.org
Sun Feb 17 22:44:46 PST 2008
Dennis Kasprzyk a écrit :
> Hi,
>
> because a lot of people seem not to like the server side quad/triangle based
> input transformation proposals, I decided to make my own proposal for a
> client side system. Please correct me if something would not work or is
> completely wrong, because I don't know the xserver well enough.
Hi Dennis, hi all,
I just wanted to let you guys know that I intended to bring the input
redirection out in the open during my talk/demo [1] next weekend at FOSDEM.
As for what I had in mind for input redirection, I've been currently
trying to extend XEVIE into what you proposed.
My other thought was to entirely block events using XEVIE and then
resending them using a modified version of XTest that includes a
destination window. That second idea would probably help on the whole
"blocking-events-in-the-server-while-compositor-responds" madness.
Right now, the modified X server inside Metisse has 2 code paths for
handling mouse events that are very close though.
There's the traditional XYToWindow(x, y) and the extended version
XYToWindowOverWindow(winID, x, y). Basically, the functions are
identical except that the extended one starts the event delivery from
winID instead of the screen's root window.
Using this approach, the server still handles the grabs itself.
One thing this approach does not handle is WindowsRestructured. My idea
was to make this call a no-op when in input redirection mode and to let
the compositor send {Enter,Leave}Events directly to the right windows
when the window hierarchy changes.
I'm sure that this proposal has pitfalls too, as the grabs semantics are
complicated, but the current working code inside Metisse works more or
less that way, and it works really well.
Either way, there's code to be shared between server-based and
client-based input redirection ... maybe both could be implemented?
Hoping to see you all at FOSDEM
Cheers,
Rémi
[1] http://fosdem.org/2008/schedule/events/xorg_metisse
More information about the xorg
mailing list