[PATCH] Revert "xkb: ProcesssPointerEvent must work on the VCP if it gets the VCP"

Peter Hutterer peter.hutterer at who-t.net
Tue Apr 1 21:22:22 PDT 2014

This was the wrong fix to the problem, and it triggered a change in XKB
behavior: previously a button event would unlock a latched modifier, now it
doesn't anymore.

Note that the new behavior is is strictly spec compliant but we've had the
other behavior for a long time so we shouldn't break it.

The bug this patch originally fixed was a null-pointer dereference when
releasing button events on server shutdown. This was addressed by the commit
below, so the need for this patch has gone away anyway.

commit 3e4be4033aed78b2bb3a18d51f0963989efd1af3
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Fri Jan 25 11:47:32 2013 +1000

    dix: when shutting down slave devices, shut down xtest devices last

This reverts commit 2decff6393a44b56d80d53570718f95354fde454.

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
 xkb/xkbAccessX.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xkb/xkbAccessX.c b/xkb/xkbAccessX.c
index cb4bca0..5f3de0d 100644
--- a/xkb/xkbAccessX.c
+++ b/xkb/xkbAccessX.c
@@ -711,7 +711,7 @@ ProcessPointerEvent(InternalEvent *ev, DeviceIntPtr mouse)
     xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(mouse);
     DeviceEvent *event = &ev->device_event;
-    dev = (IsMaster(mouse) || IsFloating(mouse)) ? mouse : GetMaster(mouse, MASTER_KEYBOARD);
+    dev = IsFloating(mouse) ? mouse : GetMaster(mouse, MASTER_KEYBOARD);
     if (dev && dev->key) {
         xkbi = dev->key->xkbInfo;

More information about the xorg-devel mailing list