Browse Source

When restarting Explorer from Properties, taskbar position is reapplied only when it differes from the previous value

pull/886/head
Valentin Radu 4 years ago
parent
commit
4b0bae46c5
  1. 8
      ExplorerPatcher/GUI.c

8
ExplorerPatcher/GUI.c

@ -7,6 +7,8 @@ BOOL g_darkModeEnabled = FALSE;
static void(*RefreshImmersiveColorPolicyState)() = NULL; static void(*RefreshImmersiveColorPolicyState)() = NULL;
static BOOL(*ShouldAppsUseDarkMode)() = NULL; static BOOL(*ShouldAppsUseDarkMode)() = NULL;
DWORD dwTaskbarPosition = 3; DWORD dwTaskbarPosition = 3;
DWORD dwInitialTaskbarPosition = 3;
BOOL IsHighContrast() BOOL IsHighContrast()
{ {
HIGHCONTRASTW highContrast; HIGHCONTRASTW highContrast;
@ -799,7 +801,10 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
GetWindowsDirectoryW(wszPath, MAX_PATH); GetWindowsDirectoryW(wszPath, MAX_PATH);
wcscat_s(wszPath, MAX_PATH, L"\\explorer.exe"); wcscat_s(wszPath, MAX_PATH, L"\\explorer.exe");
Sleep(1000); Sleep(1000);
GUI_RegSetValueExW(NULL, L"Virtualized_" _T(EP_CLSID) L"_TaskbarPosition", NULL, NULL, &dwTaskbarPosition, NULL); if (dwTaskbarPosition != dwInitialTaskbarPosition)
{
GUI_RegSetValueExW(NULL, L"Virtualized_" _T(EP_CLSID) L"_TaskbarPosition", NULL, NULL, &dwTaskbarPosition, NULL);
}
ShellExecuteW( ShellExecuteW(
NULL, NULL,
L"open", L"open",
@ -2083,6 +2088,7 @@ __declspec(dllexport) int ZZGUI(HWND hWnd, HINSTANCE hInstance, LPSTR lpszCmdLin
} }
} }
GUI_RegQueryValueExW(NULL, L"Virtualized_" _T(EP_CLSID) L"_TaskbarPosition", NULL, NULL, &dwTaskbarPosition, NULL); GUI_RegQueryValueExW(NULL, L"Virtualized_" _T(EP_CLSID) L"_TaskbarPosition", NULL, NULL, &dwTaskbarPosition, NULL);
dwInitialTaskbarPosition = dwTaskbarPosition;
HWND hwnd = CreateWindowEx( HWND hwnd = CreateWindowEx(
NULL, NULL,
L"ExplorerPatcher_GUI_" _T(EP_CLSID), L"ExplorerPatcher_GUI_" _T(EP_CLSID),

Loading…
Cancel
Save