[compiz] status of input redirection

David Reveman davidr at novell.com
Mon Jun 4 14:04:45 PDT 2007


On Sun, 2007-06-03 at 05:26 +0200, Dennis Kasprzyk wrote:
> Am Freitag, 1. Juni 2007 21:47:17 schrieb David Reveman:
> > On Fri, 2007-06-01 at 13:28 -0400, Kristian Høgsberg wrote:
> > > On 5/31/07, David Reveman <davidr at novell.com> wrote:
> > > > On Tue, 2007-05-29 at 08:53 +0200, dragoran wrote:
> > > > > There where some patches to implement input redirection in xorg a
> > > > > while ago...
> > > > > what happend to them? are they still beeing worked on?
> > > >
> > > > The attached patches work well. The server patch needs some more work
> > > > if we want to allow different pickers and I haven't had time to do that
> > > > yet.
> > >
> > > Can we merge the server patch as is and punt on the pluggable picker
> > > idea for now?  I mean, can we do this in a way that lets the
> > > interested parties add this support in a second step without breaking
> > > backwards compatibility?  If that's doable, I don't think we need to
> > > block on the pluggable picker idea now.
> >
> > I've attached a new patch with a more appropriate change to
> > WriteEventsToClient.
> >
> > I'm OK with merging the patch in it's current state. Pluggable pickers
> > can definitely be added later without breaking backwards compatibility.
> >
> > There's a few things that needs to be improved but I think the current
> > patch is good enough for common use in compositing managers.
> >
> > TODO:
> >
> > I've tried to move the event coordinate transformation into
> > FixUpEventFromWindow, which means making copies of events in a lot of
> > places as FixUpEventFromWindow is sometimes called multiple times with
> > the same xEvent. However, I never got that to work correctly and I
> > haven't had time to figure out exactly why yet.
> >
> > The pointer grab code might need some more work but the patch should of
> > course not affect non-transformed input in any way.
> >
> > I think that transformed input of non top-level windows isn't working
> > correctly. This should be easy to fix though, I just need to write a
> > good test app.
> >
> > -David
> 
> After playing with this patches I thought that maybe this interface could also 
> be extended to some basic real input "redirection". Instead of a mapping from 
> the "transformed" coordinate space to the "real" window coordinate space, 
> there could be an additional value, that tells the xserver to redirect and 
> transform the input from the "transformed" coordinate space to another window 
> coordinate space. With something like this we could realize something like 
> cloned windows in different stack positions (using "input only" windows and 
> the composite manager).
> 
> I think about somethink like this:
> XCompositeSetTriangularCoordinateMesh(Display *dpy, Window source, Window 
> destination, XTriangle *triangle, int ntriangle);
> 
> I don't know enough about the xserver internals to tell if something like this 
> is possible, but I think that this could extend the range for possible 
> effects. 

It might be a good idea to add a destination window. It shouldn't be
very hard to implement. The destination window can't be an ancestor,
though.

-David




More information about the xorg mailing list