On Wed, Jan 11, 2012 at 07:38:12AM -0800, Chase Douglas wrote: > When {XI,X,}AllowEvents is called, the timestamp is compared against the > grab time to ensure that the request pertains to the current grab in the > server. While many clients may use CurrentTime (client-side), the > timestamp of the event causing the grab is also valid. > > This change ensures that the server's notion of the grab time is the > time of the event that activated the grab rather than the time that the > grab is actually activated. > > This bug was exposed through nested touch then pointer grabs. > > Signed-off-by: Chase Douglas <chase.doug...@canonical.com> > --- > dix/events.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/dix/events.c b/dix/events.c > index 5360267..d4b00e0 100644 > --- a/dix/events.c > +++ b/dix/events.c > @@ -3723,7 +3723,8 @@ ActivatePassiveGrab(DeviceIntPtr device, GrabPtr grab, > InternalEvent *event, > } > } > > - (*grabinfo->ActivateGrab)(device, grab, currentTime, TRUE); > + (*grabinfo->ActivateGrab)(device, grab, > + ClientTimeToServerTime(event->any.time), TRUE); > > if (xE) > { > -- > 1.7.7.3
fwiw, I've merged this one, unsure about the other one at this point, see the comment there. 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