From bce6091c6b04ff2db704ae4f161179d21dcbec59 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 10 Apr 2008 09:59:45 +0930 Subject: [PATCH] dix: Extend IsKeyboardDevice() to not include pointer devices. If a pointer devices has key classes as well, don't register it as a keyboard device. Let's see how much that change will break. --- dix/events.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dix/events.c b/dix/events.c index a2a0c1a67..305502ac9 100644 --- a/dix/events.c +++ b/dix/events.c @@ -331,11 +331,14 @@ IsPointerDevice(DeviceIntPtr dev) /* * Return true if a device is a keyboard, check is the same as used by XI to * fill the 'use' field. + * + * Some pointer devices have keys as well (e.g. multimedia keys). Try to not + * count them as keyboard devices. */ _X_EXPORT Bool IsKeyboardDevice(DeviceIntPtr dev) { - return (dev->key && dev->kbdfeed); + return (dev->key && dev->kbdfeed) && !IsPointerDevice(dev);; } #ifdef XEVIE