Added option to hide "see more results" in search

Hides the item in both start menu styles and adjusts search height to
ensure the empty space is used. Partially fixes #660, but currently
does not honor group policy settings.
This commit is contained in:
thisismy-github
2021-08-12 17:59:00 -04:00
committed by Ibuprophen
parent 5399e3ad8c
commit be8568ce00
5 changed files with 28 additions and 17 deletions

View File

@@ -335,6 +335,7 @@ bool CMenuContainer::s_bDragMovable;
bool CMenuContainer::s_bRightDrag; bool CMenuContainer::s_bRightDrag;
bool CMenuContainer::s_bLockWorkArea; bool CMenuContainer::s_bLockWorkArea;
bool CMenuContainer::s_bPendingSearchEnter; bool CMenuContainer::s_bPendingSearchEnter;
bool CMenuContainer::s_bMoreResults;
std::vector<CMenuContainer*> CMenuContainer::s_Menus; std::vector<CMenuContainer*> CMenuContainer::s_Menus;
volatile HWND CMenuContainer::s_FirstMenu, CMenuContainer::s_SearchMenu; volatile HWND CMenuContainer::s_FirstMenu, CMenuContainer::s_SearchMenu;
CSearchManager::SearchResults CMenuContainer::s_SearchResults; CSearchManager::SearchResults CMenuContainer::s_SearchResults;
@@ -2745,9 +2746,9 @@ bool CMenuContainer::InitSearchItems( void )
{ {
sepHeight=s_Skin.ItemSettings[s_Skin.More_bitmap_Size.cx?MenuSkin::LIST_SEPARATOR_SPLIT:MenuSkin::LIST_SEPARATOR].itemHeight; sepHeight=s_Skin.ItemSettings[s_Skin.More_bitmap_Size.cx?MenuSkin::LIST_SEPARATOR_SPLIT:MenuSkin::LIST_SEPARATOR].itemHeight;
itemHeight=s_Skin.ItemSettings[MenuSkin::LIST_ITEM].itemHeight; itemHeight=s_Skin.ItemSettings[MenuSkin::LIST_ITEM].itemHeight;
// total height minus the search box and the "more results"/"search internet" // total height minus the search box and the "more results"/"search internet", if present
maxHeight=m_Items[m_SearchIndex].itemRect.top-s_Skin.Main_search_padding.top-s_Skin.Search_padding.top; maxHeight=m_Items[m_SearchIndex].itemRect.top-s_Skin.Main_search_padding.top-s_Skin.Search_padding.top;
maxHeight-=itemHeight*(m_SearchItemCount-1); maxHeight-=itemHeight*(m_SearchItemCount-(s_bMoreResults?1:2));
if (!s_SearchResults.bSearching && !HasMoreResults()) if (!s_SearchResults.bSearching && !HasMoreResults())
maxHeight+=itemHeight; maxHeight+=itemHeight;
} }
@@ -2941,25 +2942,28 @@ bool CMenuContainer::InitSearchItems( void )
if (s_bWin7Style) if (s_bWin7Style)
{ {
UpdateAccelerators(m_OriginalCount,(int)m_Items.size()); UpdateAccelerators(m_OriginalCount,(int)m_Items.size());
MenuItem &item=m_Items[m_SearchIndex-m_SearchItemCount+1]; if (s_bMoreResults)
if (s_SearchResults.bSearching)
{ {
item.id=MENU_SEARCH_EMPTY; MenuItem &item=m_Items[m_SearchIndex-m_SearchItemCount+1];
item.name=FindTranslation(L"Menu.Searching",L"Searching..."); if (s_SearchResults.bSearching)
item.pItemInfo=g_ItemManager.GetCustomIcon(L"imageres.dll,8",CItemManager::ICON_SIZE_TYPE_SMALL); {
} item.id=MENU_SEARCH_EMPTY;
else item.name=FindTranslation(L"Menu.Searching",L"Searching...");
{ item.pItemInfo=g_ItemManager.GetCustomIcon(L"imageres.dll,8",CItemManager::ICON_SIZE_TYPE_SMALL);
item.id=MENU_MORE_RESULTS; }
item.name=FindTranslation(L"Menu.MoreResults",L"See more results"); else
item.pItemInfo=g_ItemManager.GetCustomIcon(L"imageres.dll,177",CItemManager::ICON_SIZE_TYPE_SMALL); {
item.id=MENU_MORE_RESULTS;
item.name=FindTranslation(L"Menu.MoreResults",L"See more results");
item.pItemInfo=g_ItemManager.GetCustomIcon(L"imageres.dll,177",CItemManager::ICON_SIZE_TYPE_SMALL);
}
} }
} }
else else
{ {
m_ScrollCount=(int)m_Items.size(); m_ScrollCount=(int)m_Items.size();
bool bInternet=GetSettingBool(L"SearchInternet"); bool bInternet=GetSettingBool(L"SearchInternet");
if (s_SearchResults.bSearching) if (s_bMoreResults && s_SearchResults.bSearching)
{ {
MenuItem item(MENU_SEARCH_EMPTY); MenuItem item(MENU_SEARCH_EMPTY);
item.name=FindTranslation(L"Menu.Searching",L"Searching..."); item.name=FindTranslation(L"Menu.Searching",L"Searching...");
@@ -2974,7 +2978,7 @@ bool CMenuContainer::InitSearchItems( void )
item.name=FindTranslation(L"Menu.NoMatch",L"No items match your search."); item.name=FindTranslation(L"Menu.NoMatch",L"No items match your search.");
m_Items.push_back(item); m_Items.push_back(item);
} }
if (HasMoreResults()) if (s_bMoreResults && HasMoreResults())
{ {
{ {
MenuItem item(MENU_SEPARATOR); MenuItem item(MENU_SEPARATOR);
@@ -5062,7 +5066,7 @@ void CMenuContainer::UpdateSearchResults( bool bForceShowAll )
g_SearchManager.BeginSearch(s_SearchResults.currentString); g_SearchManager.BeginSearch(s_SearchResults.currentString);
s_SearchResults.bSearching=true; s_SearchResults.bSearching=true;
s_bPendingSearchEnter=false; s_bPendingSearchEnter=false;
if (s_bWin7Style) if (s_bWin7Style && s_bMoreResults)
{ {
MenuItem &item=m_Items[m_SearchIndex-m_SearchItemCount+1]; MenuItem &item=m_Items[m_SearchIndex-m_SearchItemCount+1];
item.id=MENU_SEARCH_EMPTY; item.id=MENU_SEARCH_EMPTY;
@@ -7694,6 +7698,7 @@ HWND CMenuContainer::ToggleStartMenu( int taskbarId, bool bKeyboard, bool bAllPr
s_bDisableHover=false; s_bDisableHover=false;
s_bDragClosed=false; s_bDragClosed=false;
s_bPendingSearchEnter=false; s_bPendingSearchEnter=false;
s_bMoreResults=GetSettingBool(L"MoreResults");
InitTouchHelper(); InitTouchHelper();
bool bRemote=GetSystemMetrics(SM_REMOTESESSION)!=0; bool bRemote=GetSystemMetrics(SM_REMOTESESSION)!=0;

View File

@@ -896,6 +896,7 @@ private:
static bool s_bRightDrag; // dragging with the right mouse button static bool s_bRightDrag; // dragging with the right mouse button
static bool s_bLockWorkArea; // changes to the work area are ignored static bool s_bLockWorkArea; // changes to the work area are ignored
static bool s_bPendingSearchEnter; // Enter was pressed before the search results were ready static bool s_bPendingSearchEnter; // Enter was pressed before the search results were ready
static bool s_bMoreResults; // shows the "Show More Results" item at the bottom of searches
static RECT s_MenuLimits; // area of the main monitor accessible to all menus static RECT s_MenuLimits; // area of the main monitor accessible to all menus
static RECT s_MainMenuLimits; // area of the main monitor accessible by the main menu static RECT s_MainMenuLimits; // area of the main monitor accessible by the main menu
static DWORD s_TaskbarState; // the state of the taskbar (ABS_AUTOHIDE and ABS_ALWAYSONTOP) static DWORD s_TaskbarState; // the state of the taskbar (ABS_AUTOHIDE and ABS_ALWAYSONTOP)

View File

@@ -4359,6 +4359,7 @@ CSetting g_Settings[]={
{L"SearchContents",CSetting::TYPE_BOOL,IDS_SEARCH_CONTENTS,IDS_SEARCH_CONTENTS_TIP,1,0,L"#SearchFiles",L"SearchFiles"}, {L"SearchContents",CSetting::TYPE_BOOL,IDS_SEARCH_CONTENTS,IDS_SEARCH_CONTENTS_TIP,1,0,L"#SearchFiles",L"SearchFiles"},
{L"SearchCategories",CSetting::TYPE_BOOL,IDS_SEARCH_CATEGORIES,IDS_SEARCH_CATEGORIES_TIP,1,0,L"#SearchFiles",L"SearchFiles"}, {L"SearchCategories",CSetting::TYPE_BOOL,IDS_SEARCH_CATEGORIES,IDS_SEARCH_CATEGORIES_TIP,1,0,L"#SearchFiles",L"SearchFiles"},
{L"SearchInternet",CSetting::TYPE_BOOL,IDS_SEARCH_INTERNET,IDS_SEARCH_INTERNET_TIP,1,0,L"SearchBox"}, {L"SearchInternet",CSetting::TYPE_BOOL,IDS_SEARCH_INTERNET,IDS_SEARCH_INTERNET_TIP,1,0,L"SearchBox"},
{L"MoreResults",CSetting::TYPE_BOOL,IDS_MORE_RESULTS,IDS_MORE_RESULTS_TIP,1,0,L"SearchBox"},
{L"Look",CSetting::TYPE_GROUP,IDS_LOOK_SETTINGS}, {L"Look",CSetting::TYPE_GROUP,IDS_LOOK_SETTINGS},
{L"SmallIconSize",CSetting::TYPE_INT,IDS_SMALL_SIZE_SM,IDS_SMALL_SIZE_SM_TIP,-1,CSetting::FLAG_COLD}, // 16 for DPI<=96, 20 for DPI<=120, 24 otherwise {L"SmallIconSize",CSetting::TYPE_INT,IDS_SMALL_SIZE_SM,IDS_SMALL_SIZE_SM_TIP,-1,CSetting::FLAG_COLD}, // 16 for DPI<=96, 20 for DPI<=120, 24 otherwise

View File

@@ -1305,6 +1305,8 @@ BEGIN
IDS_SEARCH_HINT_TIP "When this is checked, the hint text in the search box will be replaced" IDS_SEARCH_HINT_TIP "When this is checked, the hint text in the search box will be replaced"
IDS_NEW_SEARCH_HINT "Custom search hint text" IDS_NEW_SEARCH_HINT "Custom search hint text"
IDS_NEW_SEARCH_HINT_TIP "The text to replace the search hint with. Empty text is a valid option" IDS_NEW_SEARCH_HINT_TIP "The text to replace the search hint with. Empty text is a valid option"
IDS_MORE_RESULTS "Enable ""See more results"" option"
IDS_MORE_RESULTS_TIP "When this is checked, the search results will include an option to do a more advanced search"
END END
#endif // English (U.S.) resources #endif // English (U.S.) resources

View File

@@ -768,6 +768,8 @@
#define IDS_SEARCH_HINT_TIP 3671 #define IDS_SEARCH_HINT_TIP 3671
#define IDS_NEW_SEARCH_HINT 3672 #define IDS_NEW_SEARCH_HINT 3672
#define IDS_NEW_SEARCH_HINT_TIP 3673 #define IDS_NEW_SEARCH_HINT_TIP 3673
#define IDS_MORE_RESULTS 3674
#define IDS_MORE_RESULTS_TIP 3675
#define IDS_STRING7001 7001 #define IDS_STRING7001 7001
#define IDS_STRING7002 7002 #define IDS_STRING7002 7002
#define IDS_STRING7003 7003 #define IDS_STRING7003 7003