fix d3d9 alt+tab and alt+enter on windows 7
This commit is contained in:
parent
bbd430bd1e
commit
85563ef06b
2 changed files with 15 additions and 1 deletions
11
src/utils.c
11
src/utils.c
|
@ -371,6 +371,17 @@ void util_toggle_fullscreen()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (g_ddraw->render.thread)
|
||||||
|
{
|
||||||
|
EnterCriticalSection(&g_ddraw->cs);
|
||||||
|
g_ddraw->render.run = FALSE;
|
||||||
|
ReleaseSemaphore(g_ddraw->render.sem, 1, NULL);
|
||||||
|
LeaveCriticalSection(&g_ddraw->cs);
|
||||||
|
|
||||||
|
WaitForSingleObject(g_ddraw->render.thread, INFINITE);
|
||||||
|
g_ddraw->render.thread = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
ChangeDisplaySettings(NULL, g_ddraw->bnet_active ? CDS_FULLSCREEN : 0);
|
ChangeDisplaySettings(NULL, g_ddraw->bnet_active ? CDS_FULLSCREEN : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -529,6 +529,9 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
|
||||||
{
|
{
|
||||||
if (g_ddraw->renderer != d3d9_render_main || g_ddraw->nonexclusive)
|
if (g_ddraw->renderer != d3d9_render_main || g_ddraw->nonexclusive)
|
||||||
{
|
{
|
||||||
|
if (g_ddraw->renderer == d3d9_render_main) /* Needed for Windows 7 */
|
||||||
|
real_ShowWindow(g_ddraw->hwnd, SW_RESTORE);
|
||||||
|
|
||||||
ChangeDisplaySettings(&g_ddraw->render.mode, CDS_FULLSCREEN);
|
ChangeDisplaySettings(&g_ddraw->render.mode, CDS_FULLSCREEN);
|
||||||
real_ShowWindow(g_ddraw->hwnd, SW_RESTORE);
|
real_ShowWindow(g_ddraw->hwnd, SW_RESTORE);
|
||||||
mouse_lock();
|
mouse_lock();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue