[PATCH] Xi: check button mapping value _before_ assigning it
Peter Hutterer
peter.hutterer at who-t.net
Tue Dec 6 00:08:13 PST 2011
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
Xi/exevents.c | 12 ++++--------
1 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/Xi/exevents.c b/Xi/exevents.c
index 6297d6c..0a40cfd 100644
--- a/Xi/exevents.c
+++ b/Xi/exevents.c
@@ -1742,11 +1742,9 @@ ProcessDeviceEvent(InternalEvent *ev, DeviceIntPtr device)
deactivateDeviceGrab = TRUE;
break;
case ET_ButtonPress:
- event->detail.button = b->map[key];
- if (!event->detail.button) { /* there's no button 0 */
- event->detail.button = key;
+ if (b->map[key] == 0) /* there's no button 0 */
return;
- }
+ event->detail.button = b->map[key];
if (!grab && CheckDeviceGrabs(device, event, 0))
{
/* if a passive grab was activated, the event has been sent
@@ -1755,11 +1753,9 @@ ProcessDeviceEvent(InternalEvent *ev, DeviceIntPtr device)
}
break;
case ET_ButtonRelease:
- event->detail.button = b->map[key];
- if (!event->detail.button) { /* there's no button 0 */
- event->detail.button = key;
+ if (b->map[key] == 0) /* there's no button 0 */
return;
- }
+ event->detail.button = b->map[key];
if (grab && !b->buttonsDown &&
device->deviceGrab.fromPassiveGrab &&
(device->deviceGrab.grab->type == ButtonPress ||
--
1.7.7.1
More information about the xorg-devel
mailing list