From 0cb43dd17c2be7364dd57e7c4b91c571bd9fe5b5 Mon Sep 17 00:00:00 2001 From: thisismy-github <48284263+thisismy-github@users.noreply.github.com> Date: Wed, 11 Aug 2021 23:58:33 -0400 Subject: [PATCH] Added option to always single-click folders Opens pinned items on both sides of the start menu in just one click, while preserving hover functionality. Ignores the All Programs button for now as the All Programs folder is rarely accessed and this option can obstruct its use, especially for the inline menu style. Fixes #692. --- Src/StartMenu/StartMenuDLL/MenuContainer.cpp | 4 +++- Src/StartMenu/StartMenuDLL/MenuContainer.h | 1 + Src/StartMenu/StartMenuDLL/SettingsUI.cpp | 1 + Src/StartMenu/StartMenuDLL/StartMenuDLL.rc | 6 ++++++ Src/StartMenu/StartMenuDLL/resource.h | 2 ++ 5 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Src/StartMenu/StartMenuDLL/MenuContainer.cpp b/Src/StartMenu/StartMenuDLL/MenuContainer.cpp index 29413dd..8fc20af 100644 --- a/Src/StartMenu/StartMenuDLL/MenuContainer.cpp +++ b/Src/StartMenu/StartMenuDLL/MenuContainer.cpp @@ -315,6 +315,7 @@ bool CMenuContainer::s_bShowTopEmpty=false; bool CMenuContainer::s_bNoDragDrop=false; bool CMenuContainer::s_bNoContextMenu=false; bool CMenuContainer::s_bExpandLinks=false; +bool CMenuContainer::s_bSingleClickFolders=false; bool CMenuContainer::s_bLogicalSort=false; bool CMenuContainer::s_bExtensionSort=false; bool CMenuContainer::s_bAllPrograms=false; @@ -6823,7 +6824,7 @@ LRESULT CMenuContainer::OnLButtonUp( UINT uMsg, WPARAM wParam, LPARAM lParam, BO const MenuItem &item=m_Items[index]; POINT pt2=pt; ClientToScreen(&pt2); - if (!item.bFolder) + if (!item.bFolder || (s_bSingleClickFolders && item.id!=MENU_PROGRAMS)) // never open All Programs link with single click { if (item.jumpIndex>=0 && m_bHotArrow) { @@ -7672,6 +7673,7 @@ HWND CMenuContainer::ToggleStartMenu( int taskbarId, bool bKeyboard, bool bAllPr g_ItemManager.ResetTempIcons(); s_ScrollMenus=GetSettingInt(L"ScrollType"); s_bExpandLinks=GetSettingBool(L"ExpandFolderLinks"); + s_bSingleClickFolders=GetSettingBool(L"SingleClickFolders"); s_bLogicalSort=GetSettingBool(L"NumericSort"); s_MaxRecentDocuments=GetSettingInt(L"MaxRecentDocuments"); s_ShellFormat=RegisterClipboardFormat(CFSTR_SHELLIDLIST); diff --git a/Src/StartMenu/StartMenuDLL/MenuContainer.h b/Src/StartMenu/StartMenuDLL/MenuContainer.h index 696e8db..ad34beb 100644 --- a/Src/StartMenu/StartMenuDLL/MenuContainer.h +++ b/Src/StartMenu/StartMenuDLL/MenuContainer.h @@ -876,6 +876,7 @@ private: static bool s_bNoDragDrop; // disables drag/drop static bool s_bNoContextMenu; // disables the context menu static bool s_bExpandLinks; // expand links to folders + static bool s_bSingleClickFolders; // open links to folders with one click instead of two static bool s_bLogicalSort; // use StrCmpLogical instead of CompareString static bool s_bExtensionSort; // sort file names by extension static bool s_bAllPrograms; // this is the All Programs menu of the Windows start menu diff --git a/Src/StartMenu/StartMenuDLL/SettingsUI.cpp b/Src/StartMenu/StartMenuDLL/SettingsUI.cpp index 54007e9..8a7b7b2 100644 --- a/Src/StartMenu/StartMenuDLL/SettingsUI.cpp +++ b/Src/StartMenu/StartMenuDLL/SettingsUI.cpp @@ -4313,6 +4313,7 @@ CSetting g_Settings[]={ {L"UserNameCommand",CSetting::TYPE_STRING,IDS_NAME_COMMAND,IDS_NAME_COMMAND_TIP,L"control nusrmgr.cpl"}, {L"SearchFilesCommand",CSetting::TYPE_STRING,IDS_SEARCH_COMMAND,IDS_SEARCH_COMMAND_TIP,L"search-ms:",CSetting::FLAG_MENU_CLASSIC_BOTH}, {L"ExpandFolderLinks",CSetting::TYPE_BOOL,IDS_EXPAND_LINKS,IDS_EXPAND_LINKS_TIP,1}, + {L"SingleClickFolders",CSetting::TYPE_BOOL,IDS_NO_DBLCLICK,IDS_NO_DBLCLICK_TIP,0}, {L"EnableTouch",CSetting::TYPE_BOOL,IDS_ENABLE_TOUCH,IDS_ENABLE_TOUCH_TIP,1}, {L"EnableAccessibility",CSetting::TYPE_BOOL,IDS_ACCESSIBILITY,IDS_ACCESSIBILITY_TIP,1}, {L"ShowNextToTaskbar",CSetting::TYPE_BOOL,IDS_NEXTTASKBAR,IDS_NEXTTASKBAR_TIP,0}, diff --git a/Src/StartMenu/StartMenuDLL/StartMenuDLL.rc b/Src/StartMenu/StartMenuDLL/StartMenuDLL.rc index 405d5aa..6e35344 100644 --- a/Src/StartMenu/StartMenuDLL/StartMenuDLL.rc +++ b/Src/StartMenu/StartMenuDLL/StartMenuDLL.rc @@ -1295,6 +1295,12 @@ BEGIN IDS_CLEAR_CACHE "Clear cached information" END +STRINGTABLE +BEGIN + IDS_NO_DBLCLICK "Single-click to open folder shortcuts" + IDS_NO_DBLCLICK_TIP "When this is checked, single-clicking shortcuts (links) to folders will open them in explorer. Hovering over the shortcut will still expand sub-menus" +END + #endif // English (U.S.) resources ///////////////////////////////////////////////////////////////////////////// diff --git a/Src/StartMenu/StartMenuDLL/resource.h b/Src/StartMenu/StartMenuDLL/resource.h index ca08926..2d36508 100644 --- a/Src/StartMenu/StartMenuDLL/resource.h +++ b/Src/StartMenu/StartMenuDLL/resource.h @@ -760,6 +760,8 @@ #define IDS_HOR_OFFSET_TIP 3663 #define IDS_VERT_OFFSET 3664 #define IDS_VERT_OFFSET_TIP 3665 +#define IDS_NO_DBLCLICK 3666 +#define IDS_NO_DBLCLICK_TIP 3667 #define IDS_STRING7001 7001 #define IDS_STRING7002 7002 #define IDS_STRING7003 7003