Browse Source

GUI: Moved some settings to the Advanced panel

pull/886/head
Valentin Radu 4 years ago
parent
commit
325f1a022b
  1. 39
      ExplorerPatcher/dllmain.c
  2. 11
      ExplorerPatcher/settings.reg

39
ExplorerPatcher/dllmain.c

@ -1416,7 +1416,7 @@ HRESULT __stdcall CTaskGroup_DoesWindowMatchHook(LONG_PTR* task_group, HWND hCom
HRESULT hr = CTaskGroup_DoesWindowMatchFunc(task_group, hCompareWnd, pCompareItemIdList, pCompareAppId, pnMatch, p_task_item); HRESULT hr = CTaskGroup_DoesWindowMatchFunc(task_group, hCompareWnd, pCompareItemIdList, pCompareAppId, pnMatch, p_task_item);
BOOL bDontGroup = FALSE; BOOL bDontGroup = FALSE;
BOOL bPinned = FALSE; BOOL bPinned = FALSE;
if (SUCCEEDED(hr) && *pnMatch >= 1 && *pnMatch <= 3) // itemlist or appid match if (bPinnedItemsActAsQuickLaunch && SUCCEEDED(hr) && *pnMatch >= 1 && *pnMatch <= 3) // itemlist or appid match
{ {
bDontGroup = FALSE; bDontGroup = FALSE;
bPinned = (!task_group[4] || (int)((LONG_PTR*)task_group[4])[0] == 0); bPinned = (!task_group[4] || (int)((LONG_PTR*)task_group[4])[0] == 0);
@ -1507,14 +1507,14 @@ LONG_PTR __stdcall CTaskBtnGroup_GetIdealSpanHook(ITaskBtnGroup* _this, LONG_PTR
{ {
LONG_PTR ret = NULL; LONG_PTR ret = NULL;
BOOL bTypeModified = FALSE; BOOL bTypeModified = FALSE;
int button_group_type = _this->lpVtbl->GetGroupType(_this); int button_group_type = *(unsigned int*)((INT64)_this + 64);
if (button_group_type == 2) if (bRemoveExtraGapAroundPinnedItems && button_group_type == 2)
{ {
*(unsigned int*)((INT64)_this + 64) = 4; *(unsigned int*)((INT64)_this + 64) = 4;
bTypeModified = TRUE; bTypeModified = TRUE;
} }
ret = CTaskBtnGroup_GetIdealSpanFunc(_this, var2, var3, var4, var5, var6); ret = CTaskBtnGroup_GetIdealSpanFunc(_this, var2, var3, var4, var5, var6);
if (bTypeModified) if (bRemoveExtraGapAroundPinnedItems && bTypeModified)
{ {
*(unsigned int*)((INT64)_this + 64) = button_group_type; *(unsigned int*)((INT64)_this + 64) = button_group_type;
} }
@ -1534,10 +1534,7 @@ void explorer_QISearch(void* that, LPCQITAB pqit, REFIID riid, void** ppv)
{ {
CTaskGroup_DoesWindowMatchFunc = pTaskGroup->lpVtbl->DoesWindowMatch; CTaskGroup_DoesWindowMatchFunc = pTaskGroup->lpVtbl->DoesWindowMatch;
} }
if (bPinnedItemsActAsQuickLaunch)
{
pTaskGroup->lpVtbl->DoesWindowMatch = CTaskGroup_DoesWindowMatchHook; pTaskGroup->lpVtbl->DoesWindowMatch = CTaskGroup_DoesWindowMatchHook;
}
VirtualProtect(pTaskGroup->lpVtbl, sizeof(ITaskGroupVtbl), flOldProtect, &flOldProtect); VirtualProtect(pTaskGroup->lpVtbl, sizeof(ITaskGroupVtbl), flOldProtect, &flOldProtect);
} }
} }
@ -1551,10 +1548,7 @@ void explorer_QISearch(void* that, LPCQITAB pqit, REFIID riid, void** ppv)
{ {
CTaskBtnGroup_GetIdealSpanFunc = pTaskBtnGroup->lpVtbl->GetIdealSpan; CTaskBtnGroup_GetIdealSpanFunc = pTaskBtnGroup->lpVtbl->GetIdealSpan;
} }
if (bRemoveExtraGapAroundPinnedItems)
{
pTaskBtnGroup->lpVtbl->GetIdealSpan = CTaskBtnGroup_GetIdealSpanHook; pTaskBtnGroup->lpVtbl->GetIdealSpan = CTaskBtnGroup_GetIdealSpanHook;
}
VirtualProtect(pTaskBtnGroup->lpVtbl, sizeof(ITaskBtnGroupVtbl), flOldProtect, &flOldProtect); VirtualProtect(pTaskBtnGroup->lpVtbl, sizeof(ITaskBtnGroupVtbl), flOldProtect, &flOldProtect);
} }
} }
@ -5655,10 +5649,13 @@ void WINAPI LoadSettings(LPARAM lParam)
&dwSize &dwSize
); );
if (!bWasPinnedItemsActAsQuickLaunch) if (!bWasPinnedItemsActAsQuickLaunch)
{
//if (dwTemp != bPinnedItemsActAsQuickLaunch)
{ {
bPinnedItemsActAsQuickLaunch = dwTemp; bPinnedItemsActAsQuickLaunch = dwTemp;
bWasPinnedItemsActAsQuickLaunch = TRUE; bWasPinnedItemsActAsQuickLaunch = TRUE;
dwRefreshUIMask |= REFRESHUI_TASKBAR; //dwRefreshUIMask |= REFRESHUI_TASKBAR;
}
} }
dwTemp = FALSE; dwTemp = FALSE;
dwSize = sizeof(DWORD); dwSize = sizeof(DWORD);
@ -5670,12 +5667,15 @@ void WINAPI LoadSettings(LPARAM lParam)
&dwTemp, &dwTemp,
&dwSize &dwSize
); );
if (!bWasRemoveExtraGapAroundPinnedItems) //if (!bWasRemoveExtraGapAroundPinnedItems)
{
if (dwTemp != bRemoveExtraGapAroundPinnedItems)
{ {
bRemoveExtraGapAroundPinnedItems = dwTemp; bRemoveExtraGapAroundPinnedItems = dwTemp;
bWasRemoveExtraGapAroundPinnedItems = TRUE; bWasRemoveExtraGapAroundPinnedItems = TRUE;
dwRefreshUIMask |= REFRESHUI_TASKBAR; dwRefreshUIMask |= REFRESHUI_TASKBAR;
} }
}
#ifdef _WIN64 #ifdef _WIN64
AcquireSRWLockShared(&lock_epw); AcquireSRWLockShared(&lock_epw);
@ -6113,7 +6113,20 @@ void WINAPI LoadSettings(LPARAM lParam)
} }
if (dwRefreshUIMask & REFRESHUI_TASKBAR) if (dwRefreshUIMask & REFRESHUI_TASKBAR)
{ {
// not implemented // this is mostly a hack...
DWORD dwGlomLevel = 2, dwSize = sizeof(DWORD), dwNewGlomLevel;
RegGetValueW(HKEY_CURRENT_USER, TEXT(REGPATH), L"TaskbarGlomLevel", RRF_RT_DWORD, NULL, &dwGlomLevel, &dwSize);
Sleep(100);
dwNewGlomLevel = 0;
RegSetKeyValueW(HKEY_CURRENT_USER, TEXT(REGPATH), L"TaskbarGlomLevel", REG_DWORD, &dwNewGlomLevel, sizeof(DWORD));
Explorer_RefreshUI(0);
Sleep(100);
dwNewGlomLevel = 2;
RegSetKeyValueW(HKEY_CURRENT_USER, TEXT(REGPATH), L"TaskbarGlomLevel", REG_DWORD, &dwNewGlomLevel, sizeof(DWORD));
Explorer_RefreshUI(0);
Sleep(100);
RegSetKeyValueW(HKEY_CURRENT_USER, TEXT(REGPATH), L"TaskbarGlomLevel", REG_DWORD, &dwGlomLevel, sizeof(DWORD));
Explorer_RefreshUI(0);
} }
} }
} }

11
ExplorerPatcher/settings.reg

@ -68,11 +68,7 @@
;x 1 Small ;x 1 Small
;x 0 Large (default) ;x 0 Large (default)
"TaskbarSmallIcons"=dword:00000000 "TaskbarSmallIcons"=dword:00000000
[HKEY_CURRENT_USER\Software\ExplorerPatcher] ;e
;b Pinned items act as quick launch (don't group pinned items with active apps) *
"PinnedItemsActAsQuickLaunch"=dword:00000000
;b Remove extra gap around pinned items *
"RemoveExtraGapAroundPinnedItems"=dword:00000000
;T System tray ;T System tray
@ -521,6 +517,11 @@
;x 8000 8 seconds ;x 8000 8 seconds
;x 10000 10 seconds ;x 10000 10 seconds
"ExplorerReadyDelay"=dword:00000000 "ExplorerReadyDelay"=dword:00000000
;t The following settings only apply to the Windows 10 taskbar:
;b Pinned items act as quick launch (don't group pinned items with active apps) *
"PinnedItemsActAsQuickLaunch"=dword:00000000
;b When the taskbar shows button labels, remove the extra gap around pinned items
"RemoveExtraGapAroundPinnedItems"=dword:00000000
;T About ;T About

Loading…
Cancel
Save