From 631516a4aa9858874ee197444cd93d91b97a1089 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 2 Dec 2011 15:47:58 +1000 Subject: [PATCH] Xi: check button mapping value _before_ assigning it Signed-off-by: Peter Hutterer Reviewed-by: Chase Douglas --- Xi/exevents.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/Xi/exevents.c b/Xi/exevents.c index 5e446ec4a..532f04e42 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -1002,11 +1002,9 @@ ProcessOtherEvent(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 @@ -1015,11 +1013,9 @@ ProcessOtherEvent(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 ||