Browse Source

Delay sws creation until taskbar is initialized

pull/886/head 22000.376.40.20_601f76a
Valentin Radu 4 years ago
parent
commit
601f76ad49
  1. 10
      ExplorerPatcher/dllmain.c

10
ExplorerPatcher/dllmain.c

@ -93,6 +93,7 @@ HANDLE hWin11AltTabInitialized = NULL; @@ -93,6 +93,7 @@ HANDLE hWin11AltTabInitialized = NULL;
BYTE* lpShouldDisplayCCButton = NULL;
HMONITOR hMonitorList[30];
DWORD dwMonitorCount = 0;
HANDLE hCanStartSws = NULL;
int Code = 0;
HRESULT InjectStartFromExplorer();
void InvokeClockFlyout();
@ -1388,6 +1389,7 @@ DWORD FixTaskbarAutohide(DWORD unused) @@ -1388,6 +1389,7 @@ DWORD FixTaskbarAutohide(DWORD unused)
SHAppBarMessage(ABM_SETSTATE, &abd);
}
}
SetEvent(hCanStartSws);
}
#endif
#pragma endregion
@ -3581,6 +3583,7 @@ DWORD SignalShellReady(DWORD wait) @@ -3581,6 +3583,7 @@ DWORD SignalShellReady(DWORD wait)
printf(">>> Signal shell ready.\n");
SetEvent(hEvent);
}
SetEvent(hCanStartSws);
printf("Ended \"Signal shell ready\" thread.\n");
return 0;
@ -3787,11 +3790,12 @@ void sws_ReadSettings(sws_WindowSwitcher* sws) @@ -3787,11 +3790,12 @@ void sws_ReadSettings(sws_WindowSwitcher* sws)
DWORD WindowSwitcher(DWORD unused)
{
WaitForSingleObject(hCanStartSws, INFINITE);
if (!bOldTaskbar)
{
WaitForSingleObject(hWin11AltTabInitialized, INFINITE);
Sleep(1000);
}
Sleep(1000);
while (TRUE)
{
@ -6323,8 +6327,7 @@ DWORD Inject(BOOL bIsExplorer) @@ -6323,8 +6327,7 @@ DWORD Inject(BOOL bIsExplorer)
}
#ifdef _WIN64
if (bIsExplorer)
{
hCanStartSws = CreateEventW(NULL, FALSE, FALSE, NULL);
hWin11AltTabInitialized = CreateEventW(NULL, FALSE, FALSE, NULL);
CreateThread(
0,
@ -6334,7 +6337,6 @@ DWORD Inject(BOOL bIsExplorer) @@ -6334,7 +6337,6 @@ DWORD Inject(BOOL bIsExplorer)
0,
0
);
}
#ifdef USE_PRIVATE_INTERFACES

Loading…
Cancel
Save