On Tue, Jun 16, 2015 at 01:55:49PM +0300, Alexander Volkov wrote: > The client window can be closed in the middle of a touch sequence, > e.g. Qt 4 closes popup windows on MousePress and Qt 5.5 will do it > on TouchBegin. In this case the state of mouse buttons will not be > updated on TouchEnd because ProcessTouchEvent() calls UpdateDeviceState() > only when the event has been sent to the client. It results in a > stuck left mouse button. > > This patch adds a call to UpdateDeviceState() in case the client > can't be found. > > Signed-off-by: Alexander Volkov <a.vol...@rusbitech.ru> > --- > Xi/exevents.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/Xi/exevents.c b/Xi/exevents.c > index 1c586d0..32e4a2c 100644 > --- a/Xi/exevents.c > +++ b/Xi/exevents.c > @@ -1590,6 +1590,8 @@ ProcessTouchEvent(InternalEvent *ev, DeviceIntPtr dev) > if (!ti) { > DebugF("[Xi] %s: Failed to get event %d for touchpoint %d\n", > dev->name, type, touchid); > + if (emulate_pointer) > + UpdateDeviceState(dev, &ev->device_event); > return; > }
ACK, but can we do this with a "goto out" please? Cheers, Peter > > -- > 2.4.0 > _______________________________________________ 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