From a59020b1d4c7a7b23cae328067b589a2aa1d787f Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Fri, 3 Jan 2020 00:20:49 +0100 Subject: nxagent: central check for keyboard clone mode --- nx-X11/programs/Xserver/hw/nxagent/Reconnect.c | 9 --------- 1 file changed, 9 deletions(-) (limited to 'nx-X11/programs/Xserver/hw/nxagent/Reconnect.c') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c index e29fc3200..69a3011f9 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c @@ -458,15 +458,6 @@ Bool nxagentReconnectSession(void) nxagentProcessOptions(nxagentOptionsFilenameOrString); - if (nxagentKeyboard && (strcmp(nxagentKeyboard, "null/null") == 0)) - { - #ifdef TEST - fprintf(stderr, "nxagentReconnect: changing nxagentKeyboard from [null/null] to [clone].\n"); - #endif - - SAFE_free(nxagentKeyboard); - nxagentKeyboard = strdup("clone"); - } if (nxagentReconnectDisplay(reconnectLossyLevel[DISPLAY_STEP]) == 0) { -- cgit v1.2.3 From 6f390f8207689b1b807048ef39ca956978472e32 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Fri, 3 Jan 2020 01:01:24 +0100 Subject: nxagent: remove additional keyboard handling from Reconnect.c At reconnect we check if a keyboard reset is required. If so, we are calling the corresponding code from Keyboard.c. No explicit keyboard code in Reconnect.c required. fixes ArcticaProject/nx-libs#886 --- nx-X11/programs/Xserver/hw/nxagent/Reconnect.c | 39 +++++++++++++++----------- 1 file changed, 22 insertions(+), 17 deletions(-) (limited to 'nx-X11/programs/Xserver/hw/nxagent/Reconnect.c') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c index 69a3011f9..5ff0c6506 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c @@ -599,29 +599,34 @@ Bool nxagentReconnectSession(void) nxagentOldKeyboard = NULL; } - if (nxagentOption(ResetKeyboardAtResume) == 1 && - (nxagentKeyboard == NULL || nxagentOldKeyboard == NULL || - strcmp(nxagentKeyboard, nxagentOldKeyboard) != 0 || - strcmp(nxagentKeyboard, "query") == 0 || - strcmp(nxagentKeyboard, "clone") == 0)) + /* Reset the keyboard only if we detect any changes. */ + if (nxagentOption(ResetKeyboardAtResume) == 1) { - if (nxagentResetKeyboard() == 0) + if (nxagentKeyboard == NULL || nxagentOldKeyboard == NULL || + strcmp(nxagentKeyboard, nxagentOldKeyboard) != 0 || + strcmp(nxagentKeyboard, "query") == 0 || + strcmp(nxagentKeyboard, "clone") == 0) { - #ifdef WARNING - if (nxagentVerbose == 1) + if (nxagentResetKeyboard() == 0) { - fprintf(stderr, "nxagentReconnectSession: Failed to reset keyboard device.\n"); - } - #endif + #ifdef WARNING + if (nxagentVerbose == 1) + { + fprintf(stderr, "%s: Failed to reset keyboard device.\n", __func__); + } + #endif - failedStep = WINDOW_STEP; + failedStep = WINDOW_STEP; - goto nxagentReconnectError; + goto nxagentReconnectError; + } + } + else + { + #ifdef DEBUG + fprintf(stderr, "%s: keyboard unchanged - skipping keyboard reset.\n", __func__); + #endif } - } - else - { - nxagentKeycodeConversionSetup(); } nxagentXkbState.Initialized = 0; -- cgit v1.2.3