1
0
mirror of https://github.com/narzoul/DDrawCompat synced 2024-12-30 08:55:36 +01:00

Redraw window frame on SWP_FRAMECHANGED

This commit is contained in:
narzoul 2021-02-13 12:13:18 +01:00
parent 205f517845
commit 8b8a4e544f

View File

@ -37,7 +37,7 @@ namespace
bool isUser32ScrollBar(HWND hwnd); bool isUser32ScrollBar(HWND hwnd);
void onCreateWindow(HWND hwnd); void onCreateWindow(HWND hwnd);
void onDestroyWindow(HWND hwnd); void onDestroyWindow(HWND hwnd);
void onWindowPosChanged(HWND hwnd); void onWindowPosChanged(HWND hwnd, const WINDOWPOS& wp);
void onWindowPosChanging(HWND hwnd, WINDOWPOS& wp); void onWindowPosChanging(HWND hwnd, WINDOWPOS& wp);
void setWindowProc(HWND hwnd, WNDPROC wndProcA, WNDPROC wndProcW); void setWindowProc(HWND hwnd, WNDPROC wndProcA, WNDPROC wndProcW);
@ -57,7 +57,7 @@ namespace
break; break;
case WM_WINDOWPOSCHANGED: case WM_WINDOWPOSCHANGED:
onWindowPosChanged(hwnd); onWindowPosChanged(hwnd, *reinterpret_cast<WINDOWPOS*>(lParam));
break; break;
} }
@ -291,7 +291,7 @@ namespace
} }
} }
void onWindowPosChanged(HWND hwnd) void onWindowPosChanged(HWND hwnd, const WINDOWPOS& wp)
{ {
for (auto notifyFunc : g_windowPosChangeNotifyFuncs) for (auto notifyFunc : g_windowPosChangeNotifyFuncs)
{ {
@ -302,6 +302,12 @@ namespace
{ {
Gdi::Window::updateAll(); 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) void onWindowPosChanging(HWND hwnd, WINDOWPOS& wp)