From a80ffeb7aa350aea2ef45f3382bdefa1c2836a36 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Sat, 22 Oct 2022 02:52:58 +0200 Subject: [PATCH] always enable fixnotresponding patch --- inc/dd.h | 1 - src/config.c | 3 --- src/dd.c | 8 ++++++-- src/ddsurface.c | 5 +++-- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/inc/dd.h b/inc/dd.h index cb0ffc5..485e6ce 100644 --- a/inc/dd.h +++ b/inc/dd.h @@ -145,7 +145,6 @@ typedef struct CNCDDRAW BOOL nonexclusive; int fixchilds; BOOL fixwndprochook; - BOOL fixnotresponding; BOOL flipclear; BOOL locktopleft; BOOL lock_surfaces; diff --git a/src/config.c b/src/config.c index 9648a67..dae1a05 100644 --- a/src/config.c +++ b/src/config.c @@ -40,7 +40,6 @@ void cfg_load() g_ddraw->fixwndprochook = cfg_get_bool("fixwndprochook", FALSE); g_ddraw->flipclear = cfg_get_bool("flipclear", FALSE); g_ddraw->novidmem = cfg_get_bool("novidmem", FALSE); - g_ddraw->fixnotresponding = cfg_get_bool("fixnotresponding", FALSE); g_ddraw->locktopleft = cfg_get_bool("locktopleft", FALSE); g_ddraw->lock_surfaces = cfg_get_bool("lock_surfaces", FALSE); g_ddraw->releasealt = cfg_get_bool("releasealt", FALSE); @@ -364,7 +363,6 @@ static void cfg_create_ini() "fixpitch=true\n" "fixwndprochook=false\n" "novidmem=false\n" - "fixnotresponding=false\n" "locktopleft=false\n" "lock_surfaces=false\n" "releasealt=false\n" @@ -734,7 +732,6 @@ static void cfg_create_ini() "; Economic War\n" "[EcoW]\n" "maxgameticks=60\n" - "fixnotresponding=true\n" "\n" "; Fallout\n" "[falloutw]\n" diff --git a/src/dd.c b/src/dd.c index 81e7bac..87a9558 100644 --- a/src/dd.c +++ b/src/dd.c @@ -711,8 +711,12 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl if (g_ddraw->windowed) { - MSG msg; /* workaround for "Not Responding" window problem in cnc games */ - PeekMessage(&msg, g_ddraw->hwnd, 0, 0, PM_NOREMOVE); + /* workaround for "Not Responding" window problem in cnc games */ + if (GetCurrentThreadId() == g_ddraw->gui_thread_id) + { + MSG msg; + PeekMessage(&msg, g_ddraw->hwnd, 0, 0, PM_NOREMOVE); + } if (!border) { diff --git a/src/ddsurface.c b/src/ddsurface.c index dea3c2b..9ddbe48 100644 --- a/src/ddsurface.c +++ b/src/ddsurface.c @@ -934,9 +934,10 @@ HRESULT dds_Lock( dbg_dump_dds_lock_flags(dwFlags); - if (g_ddraw && g_ddraw->fixnotresponding) + /* workaround for "Not Responding" window problem */ + if (g_ddraw && g_ddraw->windowed && GetCurrentThreadId() == g_ddraw->gui_thread_id) { - MSG msg; /* workaround for "Not Responding" window problem */ + MSG msg; PeekMessage(&msg, g_ddraw->hwnd, 0, 0, PM_NOREMOVE); }