Revert "xkb: ProcesssPointerEvent must work on the VCP if it gets the VCP"
authorPeter Hutterer <peter.hutterer@who-t.net>
Wed, 2 Apr 2014 03:55:10 +0000 (13:55 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Thu, 3 Apr 2014 04:17:40 +0000 (14:17 +1000)
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.
https://bugs.freedesktop.org/show_bug.cgi?id=73155

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@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@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
xkb/xkbAccessX.c

index cb4bca0..5f3de0d 100644 (file)
@@ -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;