[compiz] status of input redirection

Dennis Kasprzyk onestone at opencompositing.org
Sat Jun 2 20:26:07 PDT 2007


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. 

Dennis



More information about the compiz mailing list