aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/hw/nxagent/Events.c
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2017-02-17 12:43:06 +0000
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2017-02-20 10:19:47 +0100
commit38ac74d6fb5a34cf755bcc97829ea36b48cd4378 (patch)
tree9258dcab08b1c2c4b66c457d31e61bf6ff04d9ac /nx-X11/programs/Xserver/hw/nxagent/Events.c
parent73ec915bcb1c6bde73168ad1ee1cccbec3455569 (diff)
downloadnx-libs-38ac74d6fb5a34cf755bcc97829ea36b48cd4378.tar.gz
nx-libs-38ac74d6fb5a34cf755bcc97829ea36b48cd4378.tar.bz2
nx-libs-38ac74d6fb5a34cf755bcc97829ea36b48cd4378.zip
Switch from using libNX_X11's deprecated XKeycodeToKeysym() function to using XGetKeyboardMapping().
Fixes ArcticaProject/nx-libs#229.
Diffstat (limited to 'nx-X11/programs/Xserver/hw/nxagent/Events.c')
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Events.c21
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);
}
}
}