On Mon, Dec 19, 2011 at 07:20:38PM -0800, Chase Douglas wrote: > On Dec 14, 2011, at 7:02 PM, Peter Hutterer <peter.hutte...@who-t.net> wrote: > > [snip] > > > +static void > > +TouchAddActiveGrabListener(DeviceIntPtr dev, TouchPointInfoPtr ti, > > + InternalEvent *ev, GrabPtr grab) > > +{ > > + if (!ti->emulate_pointer && > > + (grab->grabtype == CORE || grab->grabtype == XI)) > > + return; > > + > > + if (!ti->emulate_pointer && > > + grab->grabtype == XI2 && > > + (grab->type != XI_TouchBegin && grab->type == XI_TouchEnd && > > grab->type == XI_TouchUpdate)) > > + return; > > + > > + TouchAddGrabListener(dev, ti, ev, grab); > > If I'm reading this right, we are adding the possibility of active grabs > of touches. I didn't think that was part of the protocol.
If a client actively grabs the device for touch events, then it should get the events, right? There's nothing in the protocol to prevent this. > > +} > > + > > +void > > +TouchSetupListeners(DeviceIntPtr dev, TouchPointInfoPtr ti, InternalEvent > > *ev) > > +{ > > + int i; > > + SpritePtr sprite = &ti->sprite; > > + WindowPtr win; > > + > > + if (dev->deviceGrab.grab) > > + TouchAddActiveGrabListener(dev, ti, ev, dev->deviceGrab.grab); > > Non-touch active grabs do not allow for replaying events. Shouldn't we > continue this policy and return if an active grab was found? this hunk is there for activated passive grabs and implicit passive grabs which happen on pointer emulation. Cheers, Peter _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel