diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2017-02-20 10:21:01 +0100 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2017-02-20 10:21:01 +0100 |
commit | c79f2d289004d419d8bb76cf8bf731980d40da5d (patch) | |
tree | 9258dcab08b1c2c4b66c457d31e61bf6ff04d9ac /nx-X11/programs/Xserver/hw/nxagent/Events.c | |
parent | 73ec915bcb1c6bde73168ad1ee1cccbec3455569 (diff) | |
parent | 38ac74d6fb5a34cf755bcc97829ea36b48cd4378 (diff) | |
download | nx-libs-c79f2d289004d419d8bb76cf8bf731980d40da5d.tar.gz nx-libs-c79f2d289004d419d8bb76cf8bf731980d40da5d.tar.bz2 nx-libs-c79f2d289004d419d8bb76cf8bf731980d40da5d.zip |
Merge branch 'sunweaver-pr/use-xgetkeyboardMapping-instead-of-deprecated-xkeycodetokeysym' into 3.6.x
Attributes GH PR #335: https://github.com/ArcticaProject/nx-libs/pull/335
Reviewed by: Ulrich Sibiller <uli42@gmx.de> -- Fri, 17 Feb 2017 06:49:03 -0800
Diffstat (limited to 'nx-X11/programs/Xserver/hw/nxagent/Events.c')
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Events.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Events.c b/nx-X11/programs/Xserver/hw/nxagent/Events.c index 371780a92..efe745718 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Events.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Events.c @@ -934,7 +934,7 @@ void nxagentDispatchEvents(PredicateFuncPtr predicate) { enum HandleEventResult result; - KeySym keysym; + XlibKeySym *keysym; #ifdef TEST fprintf(stderr, "nxagentDispatchEvents: Going to handle new KeyPress event.\n"); @@ -1101,12 +1101,17 @@ void nxagentDispatchEvents(PredicateFuncPtr predicate) * sive delay. */ - keysym = XKeycodeToKeysym(nxagentDisplay, X.xkey.keycode, 0); + int keysyms_per_keycode_return; + keysym = XGetKeyboardMapping(nxagentDisplay, + X.xkey.keycode, + 1, + &keysyms_per_keycode_return); - if (nxagentMonitoredDuplicate(keysym) == 1) + if (nxagentMonitoredDuplicate(keysym[0]) == 1) { nxagentRemoveDuplicatedKeys(&X); } + free(keysym); if (nxagentOption(ViewOnly) == 0 && nxagentOption(Shadow) == 1 && result == doNothing) { @@ -4638,8 +4643,16 @@ void nxagentDumpInputDevicesState(void) { if (val & (mask << k)) { + int keysyms_per_keycode_return; + XlibKeySym *keysym = XGetKeyboardMapping(nxagentDisplay, + i * 8 + k, + 1, + &keysyms_per_keycode_return); + + fprintf(stderr, "\n\t[%d] [%s]", i * 8 + k, - XKeysymToString(XKeycodeToKeysym(nxagentDisplay, i * 8 + k, 0))); + XKeysymToString(keysym[0])); + free(keysym); } } } |