On Wed, May 02, 2012 at 09:11:21PM -0700, Jeremy Huddleston wrote: > commit 90299556db24543bb7365e8c2897deca3aa219e7 > Author: Peter Hutterer <peter.hutte...@who-t.net> > Date: Mon Apr 30 10:01:48 2012 +1000 > > dix: when disabling a device, release all buttons and keys > > A suspend-induced device disable may happen before the device gets to see > the button release event. On resume, the server's internal state still has > some buttons pressed, causing inconsistent behaviour. > > Force the release and the matching events to be sent to the client. > > Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> > Reviewed-by: Chase Douglas <chase.doug...@canonical.com> > (cherry picked from commit f3410b97cf9b48a47bee3d15d232f8a88e75f4ef) > > Conflicts: > > dix/devices.c > > diff --git a/dix/devices.c b/dix/devices.c > index 0125504..d0e99bd 100644 > --- a/dix/devices.c > +++ b/dix/devices.c > @@ -432,6 +432,8 @@ DisableDevice(DeviceIntPtr dev, BOOL sendevent) > if (*prev != dev) > return FALSE; > > + ReleaseButtonsAndKeys(dev); > + > /* float attached devices */ > if (IsMaster(dev)) { > for (other = inputInfo.devices; other; other = other->next) {
Jeremy, please revert this one on the 1.12 branch. It triggers a segfault on server shutdown when a device posts raw events after the root windows are forced to NULL. https://lists.debian.org/debian-x/2012/05/msg00240.html the fix for this is a bit of a rabbit-hole, too bit for 1.12 at this point. 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