On Wed, Mar 07, 2012 at 04:06:27PM -0800, Chase Douglas wrote: > All touches of an indirect device, such as a trackpad, are sent to the > same window set. When there are no active touches, a new window set is > created; otherwise, the window set of an existing touch is copied. > > The current code checks for any logically active touches. This includes > touches that have physically ended but are still logically active due to > unhandled touch grabs. Instead, we want a new window set whenever there > are no physically active touches. > > This change skips over logically active but pending end touches, which > are touches that have physically ended. > > Signed-off-by: Chase Douglas <[email protected]> > --- > This should also be applied to the 1.12 stable series. > > dix/touch.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/dix/touch.c b/dix/touch.c > index d04801c..0aa24f2 100644 > --- a/dix/touch.c > +++ b/dix/touch.c > @@ -524,7 +524,8 @@ TouchBuildDependentSpriteTrace(DeviceIntPtr dev, > SpritePtr sprite) > /* All touches should have the same sprite trace, so find and reuse an > * existing touch's sprite if possible, else use the device's sprite. */ > for (i = 0; i < t->num_touches; i++) > - if (t->touches[i].sprite.spriteTraceGood > 0) > + if (!t->touches[i].pending_finish && > + t->touches[i].sprite.spriteTraceGood > 0) > break; > if (i < t->num_touches) > srcsprite = &t->touches[i].sprite; > -- > 1.7.9
both applied, thank you. Cheers, Peter _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
