summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrediano Ziglio <fziglio@redhat.com>2015-08-14 10:22:07 +0100
committerFrediano Ziglio <fziglio@redhat.com>2015-08-14 10:22:07 +0100
commit890ca81de7845f8b498cabf8e45135da0a321984 (patch)
treec6d067385c64c97f47b94ccf0f28b7cb0487831a
parent6927a77cae11578f9a2726a734f1f344aae59f5c (diff)
Record keysym, not only keycode
This allow to have a different keyboard during replay. Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
-rw-r--r--record.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/record.cpp b/record.cpp
index 1ac3440..92da9e6 100644
--- a/record.cpp
+++ b/record.cpp
@@ -9,6 +9,7 @@
#ifdef HAVE_XI2
#include <X11/extensions/XInput2.h>
#endif
+#include <X11/XKBlib.h>
#include "global.h"
#include "rec.h"
@@ -141,6 +142,9 @@ DoRecord::handle_xi_keys(XIDeviceEvent* ev)
r.set_field(Record::State, ev->mods.effective);
r.set_field(Record::Detail, ev->detail);
r.set_field(Record::Window, win);
+ KeySym key = XkbKeycodeToKeysym(dpy, ev->detail,
+ 0, ev->mods.effective & ShiftMask ? 1 : 0);
+ r.set_field(Record::Keysym, key);
file.put(r);
}