Skip to content

Commit

Permalink
Xi: Fix master button update when slave buttons are mapped. #24887
Browse files Browse the repository at this point in the history
It is currently assumed that an event button delieved to a master device
corresponds to the slave button states. However, the event button is a
logical (mapped) slave button and slave button states correspond to
physical (unmapped) slave buttons. This leads to incorrect update of the
master button state and incorrect events devlivered to clients. Fix the
situation by taking the slave button map into account when querying a
slave button state.

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=24887

Signed-off-by: Eoghan Sherry <ejsherry@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
  • Loading branch information
ejsherry authored and whot committed Dec 6, 2010
1 parent 31ab9f8 commit 36b614d
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions Xi/exevents.c
Original file line number Diff line number Diff line change
Expand Up @@ -870,8 +870,10 @@ UpdateDeviceState(DeviceIntPtr device, DeviceEvent* event)
continue;
if (!sd->button)
continue;
if (button_is_down(sd, key, BUTTON_PROCESSED))
return DONT_PROCESS;
for (i = 1; i <= sd->button->numButtons; i++)
if (sd->button->map[i] == key &&
button_is_down(sd, i, BUTTON_PROCESSED))
return DONT_PROCESS;
}
}
set_button_up(device, key, BUTTON_PROCESSED);
Expand Down

0 comments on commit 36b614d

Please sign in to comment.