Browse Source

Taskbar11: Fixed a bug that reset the "never combine" setting on OS builds 22621.2361+

pull/2331/head
Valentin Radu 2 years ago
parent
commit
085b3dd9f7
  1. 49
      ExplorerPatcher/dllmain.c
  2. 1
      ExplorerPatcher/lvt.h
  3. 7
      ExplorerPatcher/osutility.h

49
ExplorerPatcher/dllmain.c

@ -11506,51 +11506,20 @@ DWORD Inject(BOOL bIsExplorer)
ResetEvent(hEvent); ResetEvent(hEvent);
}*/ }*/
if (bOldTaskbar) if (IsWindows11()) {
{ if (bOldTaskbar) {
if (IsWindows11()) CreateThread(0, 0, PlayStartupSound, 0, 0, 0);
{
CreateThread(
0,
0,
PlayStartupSound,
0,
0,
0
);
printf("Play startup sound thread...\n"); printf("Play startup sound thread...\n");
} CreateThread(0, 0, SignalShellReady, dwExplorerReadyDelay, 0, 0);
}
if (bOldTaskbar)
{
if (IsWindows11())
{
CreateThread(
0,
0,
SignalShellReady,
dwExplorerReadyDelay,
0,
0
);
printf("Signal shell ready...\n"); printf("Signal shell ready...\n");
} } else {
} CreateThread(0, 0, FixTaskbarAutohide, 0, 0, 0);
else if (!IsWindows11Version22H2Build2361OrHigher()) {
{
CreateThread(
0,
0,
FixTaskbarAutohide,
0,
0,
0
);
RegDeleteKeyValueW(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", L"TaskbarGlomLevel"); RegDeleteKeyValueW(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", L"TaskbarGlomLevel");
RegDeleteKeyValueW(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", L"MMTaskbarGlomLevel"); RegDeleteKeyValueW(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", L"MMTaskbarGlomLevel");
} }
}
}
if (IsWindows11Version22H2OrHigher() && bOldTaskbar) if (IsWindows11Version22H2OrHigher() && bOldTaskbar)
{ {

1
ExplorerPatcher/lvt.h

@ -7,6 +7,7 @@
#include <winstring.h> #include <winstring.h>
#include <stdio.h> #include <stdio.h>
#include <Shlwapi.h> #include <Shlwapi.h>
#include "osutility.h"
#define LVT_LOC_NONE 0 #define LVT_LOC_NONE 0
#define LVT_LOC_BOTTOMLEFT 1 #define LVT_LOC_BOTTOMLEFT 1

7
ExplorerPatcher/osutility.h

@ -87,4 +87,11 @@ inline BOOL IsWindows11Version22H2Build2134OrHigher()
if (global_rovi.dwBuildNumber > 22621) return TRUE; if (global_rovi.dwBuildNumber > 22621) return TRUE;
return global_rovi.dwBuildNumber == 22621 && global_ubr >= 2134; return global_rovi.dwBuildNumber == 22621 && global_ubr >= 2134;
} }
inline BOOL IsWindows11Version22H2Build2361OrHigher()
{
if (!global_rovi.dwMajorVersion) global_ubr = VnGetOSVersionAndUBR(&global_rovi);
if (global_rovi.dwBuildNumber > 22621) return TRUE;
return global_rovi.dwBuildNumber == 22621 && global_ubr >= 2361;
}
#endif #endif

Loading…
Cancel
Save