aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/hw
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/programs/Xserver/hw')
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Keyboard.c44
1 files changed, 13 insertions, 31 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c
index 84121c1db..ff23ba232 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c
@@ -828,39 +828,16 @@ XkbError:
nxagentKeycodeConversionSetup();
- if (xkb == NULL || xkb->geom == NULL)
+ if (xkb && xkb->geom)
{
- #ifdef TEST
- fprintf(stderr, "nxagentKeyboardProc: No current keyboard.\n");
- if (xkb == NULL)
- {
- fprintf(stderr, "nxagentKeyboardProc: xkb is null.\n");
- }
- else
- {
- fprintf(stderr, "nxagentKeyboardProc: xkb->geom is null.\n");
- }
- fprintf(stderr, "nxagentKeyboardProc: Going to set rules and init device.\n");
- #endif
- #ifdef DEBUG
- fprintf(stderr, "nxagentKeyboardProc: Going to set rules and init device: "
- "[rules='%s',model='%s',layout='%s',variants='%s',options='%s'].\n",
- rules, model, layout, variants, options);
- #endif
-
- XkbSetRulesDflts(rules, model, layout, variants, options);
- XkbInitKeyboardDeviceStruct((void *)pDev, &names, &keySyms, modmap,
- nxagentBell, nxagentChangeKeyboardControl);
-
- if (!nxagentKeyboard || strcmp(nxagentKeyboard, "query") == 0)
- {
- goto XkbError;
- }
-
- goto XkbEnd;
+ XkbGetControls(nxagentDisplay, XkbAllControlsMask, xkb);
}
-
- XkbGetControls(nxagentDisplay, XkbAllControlsMask, xkb);
+#ifdef TEST
+ else
+ {
+ fprintf(stderr, "nxagentKeyboardProc: No current keyboard.\n");
+ }
+#endif
#ifdef DEBUG
fprintf(stderr, "nxagentKeyboardProc: Going to set rules and init device: "
@@ -877,6 +854,11 @@ XkbError:
goto XkbError;
}
+ if (xkb && xkb->geom)
+ {
+ XkbDDXChangeControls(pDev, xkb->ctrls, xkb->ctrls);
+ }
+
if (nxagentOption(Shadow) == 1 && pDev && pDev->key)
{
NXShadowInitKeymap(&(pDev->key->curKeySyms));