dix: when shutting down slave devices, shut down xtest devices last
authorPeter Hutterer <peter.hutterer@who-t.net>
Fri, 25 Jan 2013 01:47:32 +0000 (11:47 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Fri, 8 Feb 2013 04:12:56 +0000 (14:12 +1000)
commit3e4be4033aed78b2bb3a18d51f0963989efd1af3
tree6c57d225c9b46cc23760109fc1ac7655282ab17f
parent0d5bb882600ee7734af034fbea935a79d21d1e70
dix: when shutting down slave devices, shut down xtest devices last

XTest devices are the first ones in the list, being initialised together
with the master devices. If we disable the devices in-order and a device has
a button down when being disabled, the XTest device is checked for a
required button release (xkbAccessX.c's ProcessPointerEvent). This fails if
the device is already NULL.

Instead of putting the check there, disable the devices in the reverse order
they are initialised. Disable physical slaves first, then xtest devices,
then the master devices.

Testcase: shut down server with a button still held down on a physical
device

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
dix/devices.c