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