diff --git a/nx-X11/programs/Xserver/hw/nxagent/Events.c b/nx-X11/programs/Xserver/hw/nxagent/Events.c index 4f3875780e..55c057dfd6 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Events.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Events.c @@ -1101,7 +1101,7 @@ void nxagentDispatchEvents(PredicateFuncPtr predicate) * sive delay. */ - keysym = XKeycodeToKeysym(nxagentDisplay, X.xkey.keycode, 0); + keysym = XkbKeycodeToKeysym(nxagentDisplay, X.xkey.keycode, 0, 0); if (nxagentMonitoredDuplicate(keysym) == 1) { diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keystroke.c b/nx-X11/programs/Xserver/hw/nxagent/Keystroke.c index 8dc1a0b852..1b3a5fd91e 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Keystroke.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Keystroke.c @@ -42,6 +42,8 @@ #include #include +#include + extern Bool nxagentWMIsRunning; extern Bool nxagentIpaq; extern char *nxagentKeystrokeFile; @@ -407,6 +409,7 @@ free(filename); static enum nxagentSpecialKeystroke find_keystroke(XKeyEvent *X) { KeySym keysym = XKeycodeToKeysym(nxagentDisplay, X->keycode, 0); + KeySym keysym = XkbKeycodeToKeysym(nxagentDisplay,X->keycode, 0, 0); struct nxagentSpecialKeystrokeMap *cur = map; if (! nxagentKeystrokeFileParsed) @@ -430,7 +433,6 @@ static enum nxagentSpecialKeystroke find_keystroke(XKeyEvent *X) int nxagentCheckSpecialKeystroke(XKeyEvent *X, enum HandleEventResult *result) { KeySym sym; - int index = 0; enum nxagentSpecialKeystroke stroke = find_keystroke(X); *result = doNothing; @@ -440,7 +442,7 @@ int nxagentCheckSpecialKeystroke(XKeyEvent *X, enum HandleEventResult *result) * Do we need a cache ? */ - sym = XKeycodeToKeysym(nxagentDisplay, X -> keycode, index); + sym = XkbKeycodeToKeysym(nxagentDisplay, X->keycode, 0, 0); if (sym == XK_VoidSymbol || sym == NoSymbol) {