diff --git a/cmd/launcher/launcher.cpp b/cmd/launcher/launcher.cpp index 1b89e9fb..66019f01 100644 --- a/cmd/launcher/launcher.cpp +++ b/cmd/launcher/launcher.cpp @@ -829,6 +829,10 @@ addDlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) index->second != 0)); child = getItem(hwnd, IDC_ADD_HD_NUM_CHECK); index = info->m_options.find(kOptionHalfDuplexNumLock); + setItemChecked(child, (index != info->m_options.end() && + index->second != 0)); + child = getItem(hwnd, IDC_ADD_HD_SCROLL_CHECK); + index = info->m_options.find(kOptionHalfDuplexScrollLock); setItemChecked(child, (index != info->m_options.end() && index->second != 0)); @@ -940,9 +944,15 @@ addDlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) else { info->m_options.erase(kOptionHalfDuplexNumLock); } + child = getItem(hwnd, IDC_ADD_HD_SCROLL_CHECK); + if (isItemChecked(child)) { + info->m_options[kOptionHalfDuplexScrollLock] = 1; + } + else { + info->m_options.erase(kOptionHalfDuplexScrollLock); + } // save modifier options - child = getItem(hwnd, IDC_ADD_HD_CAPS_CHECK); for (UInt32 i = 0; i < sizeof(s_modifiers) / sizeof(s_modifiers[0]); ++i) { child = getItem(hwnd, s_modifiers[i].m_ctrlID); diff --git a/cmd/launcher/launcher.rc b/cmd/launcher/launcher.rc index d14e60f5..71742019 100644 --- a/cmd/launcher/launcher.rc +++ b/cmd/launcher/launcher.rc @@ -116,13 +116,15 @@ BEGIN LTEXT "&Aliases:",IDC_STATIC,7,25,25,8 EDITTEXT IDC_ADD_ALIASES_EDIT,79,26,106,40,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN - GROUPBOX "Options",IDC_STATIC,7,72,178,64 - LTEXT "If your Caps Lock or Num Lock keys behave strangely on this client screen then try turning the half-duplex options on and reconnect the client.", + GROUPBOX "Half-Duplex",IDC_STATIC,7,72,178,64 + LTEXT "If your Caps, Num, or Scroll Lock keys behave strangely on this screen then turn on the half-duplex options and restart the server.", IDC_STATIC,13,82,165,25 - CONTROL "Half-duplex &Caps Lock",IDC_ADD_HD_CAPS_CHECK,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,13,110,165,10 - CONTROL "Half-duplex &Num Lock",IDC_ADD_HD_NUM_CHECK,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,13,122,165,10 + CONTROL "&Caps Lock",IDC_ADD_HD_CAPS_CHECK,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,13,110,81,10 + CONTROL "&Num Lock",IDC_ADD_HD_NUM_CHECK,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,13,122,81,10 + CONTROL "Sc&roll Lock",IDC_ADD_HD_SCROLL_CHECK,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,98,110,81,10 GROUPBOX "Modifiers",IDC_STATIC,7,139,178,65 LTEXT "Shift",IDC_STATIC,13,155,15,8 COMBOBOX IDC_ADD_MOD_SHIFT,37,152,48,60,CBS_DROPDOWNLIST | diff --git a/cmd/launcher/resource.h b/cmd/launcher/resource.h index e6d90dac..b8c746ff 100644 --- a/cmd/launcher/resource.h +++ b/cmd/launcher/resource.h @@ -87,6 +87,7 @@ #define IDC_ADD_HD_NUM_CHECK 1038 #define IDC_ADVANCED_NAME_EDIT 1038 #define IDC_ADVANCED_PORT_EDIT 1039 +#define IDC_ADD_HD_SCROLL_CHECK 1039 #define IDC_MAIN_DEBUG 1040 #define IDC_GLOBAL_DELAY_CHECK 1041 #define IDC_GLOBAL_DELAY_TIME 1042 diff --git a/doc/configuration.html b/doc/configuration.html index 494b8718..2cee328a 100644 --- a/doc/configuration.html +++ b/doc/configuration.html @@ -99,6 +99,14 @@ A screen can have the following options: This is identical to halfDuplexCapsLock except it applies to the Num Lock key.
++ This is identical to halfDuplexCapsLock + except it applies to the Scroll Lock key. Note that synergy uses + Scroll Lock to keep the cursor on the current screen. That is, + when Scroll Lock is toggled on, the cursor is locked to the screen + that it's currently on. Use it to prevent accidental switching. +
This option works around a bug in the XTest extension diff --git a/doc/faq.html b/doc/faq.html index 86f2d539..1b355594 100644 --- a/doc/faq.html +++ b/doc/faq.html @@ -15,7 +15,7 @@
- Some systems treat the Caps-Lock and Num-Lock keys differently - than all the others. Whereas most keys report going down when - physically pressed and going up when physically released, on - these systems the Caps-Lock and Num-Lock keys report going down - when being activated and going up when being deactivated. That - is, when you press and release, say, Caps-Lock to activate it, it - only reports going down, and when you press and release to - deactivate it, it only reports going up. This confuses synergy. + Some systems treat the Caps-Lock, Num-Lock, and Scroll-Lock keys + differently than all the others. Whereas most keys report going down + when physically pressed and going up when physically released, on + these systems the keys report going down when being activated and + going up when being deactivated. That is, when you press and release, + say, Caps-Lock to activate it, it only reports going down, and when + you press and release to deactivate it, it only reports going up. + This confuses synergy.
You can solve the problem by changing your configuration file. In the screens section, following each screen that has the - problem, add either or both of these lines as appropriate: + problem, add any or all of these lines as appropriate:
halfDuplexCapsLock = true
halfDuplexNumLock = true
+ halfDuplexScrollLock = true
- Then restart synergy on the server. + Then restart synergy on the server or reload the configuration.