Fix DefWindowProc called for events handled in WIN_WindowProc

This commit is contained in:
Daniel Ludwig
2025-11-07 11:00:55 +01:00
committed by Sam Lantinga
parent a2ed1a4197
commit ef5b1c8f5f

View File

@@ -427,16 +427,14 @@ static bool SetupWindowData(SDL_VideoDevice *_this, SDL_Window *window, HWND hwn
// Set up the window proc function // Set up the window proc function
#ifdef GWLP_WNDPROC #ifdef GWLP_WNDPROC
data->wndproc = (WNDPROC)GetWindowLongPtr(hwnd, GWLP_WNDPROC); data->wndproc = (WNDPROC)GetWindowLongPtr(hwnd, GWLP_WNDPROC);
if (data->wndproc == WIN_WindowProc) { if (data->wndproc == DefWindowProc) {
data->wndproc = NULL; data->wndproc = NULL;
} else {
SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR)WIN_WindowProc); SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR)WIN_WindowProc);
} }
#else #else
data->wndproc = (WNDPROC)GetWindowLong(hwnd, GWL_WNDPROC); data->wndproc = (WNDPROC)GetWindowLong(hwnd, GWL_WNDPROC);
if (data->wndproc == WIN_WindowProc) { if (data->wndproc == DefWindowProc) {
data->wndproc = NULL; data->wndproc = NULL;
} else {
SetWindowLong(hwnd, GWL_WNDPROC, (LONG_PTR)WIN_WindowProc); SetWindowLong(hwnd, GWL_WNDPROC, (LONG_PTR)WIN_WindowProc);
} }
#endif #endif