diff options
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Keyboard.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c index 950aec839..233b6df74 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c @@ -80,7 +80,8 @@ is" without express or implied warranty. #include <errno.h> -static void nxagentXkbGetNames(void); +static void nxagentXkbGetRemoteNames(void); +static void nxagentXkbClearRemoteNames(void); void nxagentKeycodeConversionSetup(void); @@ -696,6 +697,9 @@ XkbError: } #endif + /* we don't need the remote keyboard information anymore */ + nxagentXkbClearRemoteNames(); + xkb = XkbGetKeyboard(nxagentDisplay, XkbGBN_AllComponentsMask, XkbUseCoreKbd); if (xkb && xkb->geom) @@ -1341,7 +1345,7 @@ void nxagentTuneXkbWrapper(void) } } -void nxagentXkbClearNames(void) +void nxagentXkbClearRemoteNames(void) { SAFE_free(nxagentRemoteRules); SAFE_free(nxagentRemoteModel); @@ -1350,7 +1354,7 @@ void nxagentXkbClearNames(void) SAFE_free(nxagentRemoteOptions); } -static void nxagentXkbGetNames(void) +static void nxagentXkbGetRemoteNames(void) { if (nxagentRemoteRules) return; @@ -1554,7 +1558,7 @@ void nxagentKeycodeConversionSetup(void) Bool nxagentGetRemoteXkbExtension(void) { nxagentXkbInfo.Opcode = nxagentXkbInfo.EventBase = nxagentXkbInfo.ErrorBase = nxagentXkbInfo.MajorVersion = nxagentXkbInfo.MinorVersion = -1; - nxagentXkbClearNames(); + nxagentXkbClearRemoteNames(); Bool result = XkbQueryExtension(nxagentDisplay, &nxagentXkbInfo.Opcode, @@ -1565,7 +1569,7 @@ Bool nxagentGetRemoteXkbExtension(void) if (result) { - nxagentXkbGetNames(); + nxagentXkbGetRemoteNames(); } #ifdef WARNING else |