From a7b6a80799b92192fb654842943354c9038869b7 Mon Sep 17 00:00:00 2001 From: ge0rdi Date: Mon, 19 Dec 2022 13:13:35 +0100 Subject: [PATCH] Added new option "Enable accelerators" It will control whether keyboard accelerators are used in start menu. Disabling it can be helpful for people that tend to hit some accelerator by mistake. Fixes #447 --- Src/StartMenu/StartMenuDLL/MenuContainer.cpp | 8 +++++++- Src/StartMenu/StartMenuDLL/SettingsUI.cpp | 1 + Src/StartMenu/StartMenuDLL/StartMenuDLL.rc | 2 ++ Src/StartMenu/StartMenuDLL/resource.h | 2 ++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Src/StartMenu/StartMenuDLL/MenuContainer.cpp b/Src/StartMenu/StartMenuDLL/MenuContainer.cpp index dbfd3dd..3467d7f 100644 --- a/Src/StartMenu/StartMenuDLL/MenuContainer.cpp +++ b/Src/StartMenu/StartMenuDLL/MenuContainer.cpp @@ -5115,6 +5115,9 @@ void CMenuContainer::UpdateSearchResults( bool bForceShowAll ) // Turn on the keyboard cues from now on. This is done when a keyboard action is detected void CMenuContainer::ShowKeyboardCues( void ) { + if (!GetSettingBool(L"EnableAccelerators")) + return; + if (!s_bKeyboardCues) { s_bKeyboardCues=true; @@ -6109,6 +6112,9 @@ LRESULT CMenuContainer::OnSysKeyDown( UINT uMsg, WPARAM wParam, LPARAM lParam, B LRESULT CMenuContainer::OnChar( UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled ) { + if (!GetSettingBool(L"EnableAccelerators")) + return TRUE; + if (wParam>=0xD800 && wParam<=0xDBFF) return TRUE; // don't support supplementary characters @@ -8070,7 +8076,7 @@ HWND CMenuContainer::ToggleStartMenu( int taskbarId, bool bKeyboard, bool bAllPr s_bNoDragDrop=!GetSettingBool(L"EnableDragDrop"); s_bNoContextMenu=!GetSettingBool(L"EnableContextMenu"); - s_bKeyboardCues=bKeyboard; + s_bKeyboardCues=bKeyboard&&GetSettingBool(L"EnableAccelerators"); s_RecentPrograms=(TRecentPrograms)GetSettingInt(L"RecentPrograms"); if (s_RecentPrograms!=RECENT_PROGRAMS_NONE) LoadMRUShortcuts(); diff --git a/Src/StartMenu/StartMenuDLL/SettingsUI.cpp b/Src/StartMenu/StartMenuDLL/SettingsUI.cpp index f81798f..08c6727 100644 --- a/Src/StartMenu/StartMenuDLL/SettingsUI.cpp +++ b/Src/StartMenu/StartMenuDLL/SettingsUI.cpp @@ -4360,6 +4360,7 @@ CSetting g_Settings[]={ {L"DelayIcons",CSetting::TYPE_BOOL,IDS_DELAY_ICONS,IDS_DELAY_ICONS_TIP,1,CSetting::FLAG_COLD}, {L"BoldSettings",CSetting::TYPE_BOOL,IDS_BOLD_SETTINGS,IDS_BOLD_SETTINGS_TIP,1}, {L"ReportSkinErrors",CSetting::TYPE_BOOL,IDS_SKIN_ERRORS,IDS_SKIN_ERRORS_TIP,0}, + {L"EnableAccelerators",CSetting::TYPE_BOOL,IDS_ENABLE_ACCELERATORS,IDS_ENABLE_ACCELERATORS_TIP,1}, {L"SearchBoxSettings",CSetting::TYPE_GROUP,IDS_SEARCH_BOX}, {L"SearchBox",CSetting::TYPE_INT,IDS_SHOW_SEARCH_BOX,IDS_SHOW_SEARCH_BOX_TIP,SEARCHBOX_TAB,CSetting::FLAG_BASIC}, diff --git a/Src/StartMenu/StartMenuDLL/StartMenuDLL.rc b/Src/StartMenu/StartMenuDLL/StartMenuDLL.rc index 46634e1..c1f98ad 100644 --- a/Src/StartMenu/StartMenuDLL/StartMenuDLL.rc +++ b/Src/StartMenu/StartMenuDLL/StartMenuDLL.rc @@ -637,6 +637,8 @@ BEGIN IDS_MENU_USERNAME "User name text" IDS_MENU_USERNAME_TIP "Enter the text you want to see in the user-name portion of the menu (for skins that show the user name)" IDS_PIC_COMMAND "User picture command" + IDS_ENABLE_ACCELERATORS "Enable accelerators" + IDS_ENABLE_ACCELERATORS_TIP "Use keyboard accelerators to execute menu commands" END STRINGTABLE diff --git a/Src/StartMenu/StartMenuDLL/resource.h b/Src/StartMenu/StartMenuDLL/resource.h index ea11543..4ca30fa 100644 --- a/Src/StartMenu/StartMenuDLL/resource.h +++ b/Src/StartMenu/StartMenuDLL/resource.h @@ -780,6 +780,8 @@ #define IDS_OPEN_TRUE_PATH_TIP 3683 #define IDS_PINNED_PATH 3684 #define IDS_PINNED_PATH_TIP 3685 +#define IDS_ENABLE_ACCELERATORS 3686 +#define IDS_ENABLE_ACCELERATORS_TIP 3687 #define IDS_STRING7001 7001 #define IDS_STRING7002 7002 #define IDS_STRING7003 7003