aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/hw/nxagent/Events.c
diff options
context:
space:
mode:
authorUlrich Sibiller <uli42@gmx.de>2017-05-04 22:38:08 +0200
committerUlrich Sibiller <uli42@gmx.de>2017-05-04 22:45:57 +0200
commit651d5e5eefdcf1276d0ec3be6717b817dca1aa75 (patch)
tree46e4b3a737d0802b3ffda150579eed6027f826c0 /nx-X11/programs/Xserver/hw/nxagent/Events.c
parent60d7c02e0ebce704fb78fd6c48c91d90308076de (diff)
downloadnx-libs-651d5e5eefdcf1276d0ec3be6717b817dca1aa75.tar.gz
nx-libs-651d5e5eefdcf1276d0ec3be6717b817dca1aa75.tar.bz2
nx-libs-651d5e5eefdcf1276d0ec3be6717b817dca1aa75.zip
Revert "Switch from using libNX_X11's deprecated XKeycodeToKeysym() function to using XGetKeyboardMapping()."
This reverts commit efc0dae0519aa0ef1fabea6a64919475fd916347. Recent test revealed keyboard hangs on high latency connections. These hangs are not happening in 3.5.0 releases if the nx-libs. The commit above is responsible for them so we take that back. Interestingly nxcomp has special treatment for XGetKeyboardMapping() so it should normally speed up things but it results in the opposite for us. Needs further examination. This fixes ArcticaProject/nx-libs#450
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, 4 insertions, 17 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Events.c b/nx-X11/programs/Xserver/hw/nxagent/Events.c
index e4d031e06..e360d21f6 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;
- XlibKeySym *keysym;
+ KeySym keysym;
#ifdef TEST
fprintf(stderr, "nxagentDispatchEvents: Going to handle new KeyPress event.\n");
@@ -1101,17 +1101,12 @@ void nxagentDispatchEvents(PredicateFuncPtr predicate)
* sive delay.
*/
- int keysyms_per_keycode_return;
- keysym = XGetKeyboardMapping(nxagentDisplay,
- X.xkey.keycode,
- 1,
- &keysyms_per_keycode_return);
+ keysym = XKeycodeToKeysym(nxagentDisplay, X.xkey.keycode, 0);
- if (nxagentMonitoredDuplicate(keysym[0]) == 1)
+ if (nxagentMonitoredDuplicate(keysym) == 1)
{
nxagentRemoveDuplicatedKeys(&X);
}
- free(keysym);
if (nxagentOption(ViewOnly) == 0 && nxagentOption(Shadow) == 1 && result == doNothing)
{
@@ -4657,16 +4652,8 @@ 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(keysym[0]));
- free(keysym);
+ XKeysymToString(XKeycodeToKeysym(nxagentDisplay, i * 8 + k, 0)));
}
}
}