From 55ee6f73918c62ca59cb22451e55bee441f7b6d0 Mon Sep 17 00:00:00 2001 From: dinkc64 <12570148+dinkc64@users.noreply.github.com> Date: Wed, 9 Jul 2014 19:09:18 +0000 Subject: [PATCH] better re-draw playscreen when back from hibernation while paused --- src/burner/win32/scrn.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/burner/win32/scrn.cpp b/src/burner/win32/scrn.cpp index c2fc7ece2..db0484d95 100644 --- a/src/burner/win32/scrn.cpp +++ b/src/burner/win32/scrn.cpp @@ -30,6 +30,8 @@ HWND hRebar = NULL; // Handle to the Rebar control containing the menu static bool bMaximised; static int nPrevWidth, nPrevHeight; +static int bBackFromHibernation = 0; + #define ID_NETCHAT 999 HWND hwndChat = NULL; WNDPROC pOldWndProc = NULL; @@ -368,7 +370,14 @@ static LRESULT CALLBACK ScrnProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lPar } break; } - + // - dink - handle return from Hibernation + case WM_POWERBROADCAST: { + if (wParam == PBT_APMRESUMESUSPEND || wParam == PBT_APMSUSPEND) { + bBackFromHibernation = 1; + } + break; + } + // - dink - end HANDLE_MSG(hWnd, WM_SIZE, OnSize); HANDLE_MSG(hWnd, WM_ENTERSIZEMOVE, OnEnterSizeMove); HANDLE_MSG(hWnd, WM_EXITSIZEMOVE, OnExitSizeMove); @@ -585,7 +594,11 @@ static void OnPaint(HWND hWnd) if (hWnd == hScrnWnd) { VidPaint(1); - PausedRedraw(); // redraw game screen if paused and returning from hibernation - dink + + if (bBackFromHibernation) { + PausedRedraw(); // redraw game screen if paused and returning from hibernation - dink + bBackFromHibernation = 0; + } // draw menu if (!nVidFullscreen) {