summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2009-03-06 19:42:27 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2009-03-12 11:03:29 +1000
commit067f26f7ba4c8cf37af7ddf0eb204b7e1d06096d (patch)
tree94796f53ae63ecf86a325d9938ba9abf5c26287e
parentda724e8f1d1867c36c9550a153c58829939800fc (diff)
Xi: set the modifier + group state during POE.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--Xi/exevents.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/Xi/exevents.c b/Xi/exevents.c
index 456e0791f..90005f487 100644
--- a/Xi/exevents.c
+++ b/Xi/exevents.c
@@ -911,6 +911,17 @@ ProcessOtherEvent(InternalEvent *ev, DeviceIntPtr device)
if (BitIsOn(mouse->button->down, i))
SetBit(event->buttons, i);
+ if (kbd && kbd->key)
+ {
+ event->mods.base = kbd->key->xkbInfo->state.base_mods;
+ event->mods.latched = kbd->key->xkbInfo->state.latched_mods;
+ event->mods.locked = kbd->key->xkbInfo->state.locked_mods;
+
+ event->group.base = kbd->key->xkbInfo->state.base_group;
+ event->group.latched = kbd->key->xkbInfo->state.latched_group;
+ event->group.locked = kbd->key->xkbInfo->state.locked_group;
+ }
+
ret = UpdateDeviceState(device, event);
if (ret == DONT_PROCESS)
return;