Browse Source

GUI: Moved some settings to the Advanced panel

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

53
ExplorerPatcher/dllmain.c

@ -1416,7 +1416,7 @@ HRESULT __stdcall CTaskGroup_DoesWindowMatchHook(LONG_PTR* task_group, HWND hCom @@ -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);
BOOL bDontGroup = 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;
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 @@ -1507,14 +1507,14 @@ LONG_PTR __stdcall CTaskBtnGroup_GetIdealSpanHook(ITaskBtnGroup* _this, LONG_PTR
{
LONG_PTR ret = NULL;
BOOL bTypeModified = FALSE;
int button_group_type = _this->lpVtbl->GetGroupType(_this);
if (button_group_type == 2)
int button_group_type = *(unsigned int*)((INT64)_this + 64);
if (bRemoveExtraGapAroundPinnedItems && button_group_type == 2)
{
*(unsigned int*)((INT64)_this + 64) = 4;
bTypeModified = TRUE;
}
ret = CTaskBtnGroup_GetIdealSpanFunc(_this, var2, var3, var4, var5, var6);
if (bTypeModified)
if (bRemoveExtraGapAroundPinnedItems && bTypeModified)
{
*(unsigned int*)((INT64)_this + 64) = button_group_type;
}
@ -1534,10 +1534,7 @@ void explorer_QISearch(void* that, LPCQITAB pqit, REFIID riid, void** ppv) @@ -1534,10 +1534,7 @@ void explorer_QISearch(void* that, LPCQITAB pqit, REFIID riid, void** ppv)
{
CTaskGroup_DoesWindowMatchFunc = pTaskGroup->lpVtbl->DoesWindowMatch;
}
if (bPinnedItemsActAsQuickLaunch)
{
pTaskGroup->lpVtbl->DoesWindowMatch = CTaskGroup_DoesWindowMatchHook;
}
pTaskGroup->lpVtbl->DoesWindowMatch = CTaskGroup_DoesWindowMatchHook;
VirtualProtect(pTaskGroup->lpVtbl, sizeof(ITaskGroupVtbl), flOldProtect, &flOldProtect);
}
}
@ -1551,10 +1548,7 @@ void explorer_QISearch(void* that, LPCQITAB pqit, REFIID riid, void** ppv) @@ -1551,10 +1548,7 @@ void explorer_QISearch(void* that, LPCQITAB pqit, REFIID riid, void** ppv)
{
CTaskBtnGroup_GetIdealSpanFunc = pTaskBtnGroup->lpVtbl->GetIdealSpan;
}
if (bRemoveExtraGapAroundPinnedItems)
{
pTaskBtnGroup->lpVtbl->GetIdealSpan = CTaskBtnGroup_GetIdealSpanHook;
}
pTaskBtnGroup->lpVtbl->GetIdealSpan = CTaskBtnGroup_GetIdealSpanHook;
VirtualProtect(pTaskBtnGroup->lpVtbl, sizeof(ITaskBtnGroupVtbl), flOldProtect, &flOldProtect);
}
}
@ -5656,9 +5650,12 @@ void WINAPI LoadSettings(LPARAM lParam) @@ -5656,9 +5650,12 @@ void WINAPI LoadSettings(LPARAM lParam)
);
if (!bWasPinnedItemsActAsQuickLaunch)
{
bPinnedItemsActAsQuickLaunch = dwTemp;
bWasPinnedItemsActAsQuickLaunch = TRUE;
dwRefreshUIMask |= REFRESHUI_TASKBAR;
//if (dwTemp != bPinnedItemsActAsQuickLaunch)
{
bPinnedItemsActAsQuickLaunch = dwTemp;
bWasPinnedItemsActAsQuickLaunch = TRUE;
//dwRefreshUIMask |= REFRESHUI_TASKBAR;
}
}
dwTemp = FALSE;
dwSize = sizeof(DWORD);
@ -5670,11 +5667,14 @@ void WINAPI LoadSettings(LPARAM lParam) @@ -5670,11 +5667,14 @@ void WINAPI LoadSettings(LPARAM lParam)
&dwTemp,
&dwSize
);
if (!bWasRemoveExtraGapAroundPinnedItems)
//if (!bWasRemoveExtraGapAroundPinnedItems)
{
bRemoveExtraGapAroundPinnedItems = dwTemp;
bWasRemoveExtraGapAroundPinnedItems = TRUE;
dwRefreshUIMask |= REFRESHUI_TASKBAR;
if (dwTemp != bRemoveExtraGapAroundPinnedItems)
{
bRemoveExtraGapAroundPinnedItems = dwTemp;
bWasRemoveExtraGapAroundPinnedItems = TRUE;
dwRefreshUIMask |= REFRESHUI_TASKBAR;
}
}
#ifdef _WIN64
@ -6113,7 +6113,20 @@ void WINAPI LoadSettings(LPARAM lParam) @@ -6113,7 +6113,20 @@ void WINAPI LoadSettings(LPARAM lParam)
}
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 @@ @@ -68,11 +68,7 @@
;x 1 Small
;x 0 Large (default)
"TaskbarSmallIcons"=dword:00000000
[HKEY_CURRENT_USER\Software\ExplorerPatcher]
;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
;e
;T System tray
@ -521,6 +517,11 @@ @@ -521,6 +517,11 @@
;x 8000 8 seconds
;x 10000 10 seconds
"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

Loading…
Cancel
Save