diff --git a/DDrawCompat/Gdi/WinProc.cpp b/DDrawCompat/Gdi/WinProc.cpp index 5e4146b..a837745 100644 --- a/DDrawCompat/Gdi/WinProc.cpp +++ b/DDrawCompat/Gdi/WinProc.cpp @@ -37,7 +37,7 @@ namespace bool isUser32ScrollBar(HWND hwnd); void onCreateWindow(HWND hwnd); void onDestroyWindow(HWND hwnd); - void onWindowPosChanged(HWND hwnd); + void onWindowPosChanged(HWND hwnd, const WINDOWPOS& wp); void onWindowPosChanging(HWND hwnd, WINDOWPOS& wp); void setWindowProc(HWND hwnd, WNDPROC wndProcA, WNDPROC wndProcW); @@ -57,7 +57,7 @@ namespace break; case WM_WINDOWPOSCHANGED: - onWindowPosChanged(hwnd); + onWindowPosChanged(hwnd, *reinterpret_cast(lParam)); break; } @@ -291,7 +291,7 @@ namespace } } - void onWindowPosChanged(HWND hwnd) + void onWindowPosChanged(HWND hwnd, const WINDOWPOS& wp) { for (auto notifyFunc : g_windowPosChangeNotifyFuncs) { @@ -302,6 +302,12 @@ namespace { Gdi::Window::updateAll(); } + + if (wp.flags & SWP_FRAMECHANGED) + { + RECT r = { -1, -1, 0, 0 }; + RedrawWindow(hwnd, &r, nullptr, RDW_INVALIDATE | RDW_FRAME); + } } void onWindowPosChanging(HWND hwnd, WINDOWPOS& wp)