diff --git a/src/video/windows/SDL_windowsevents.c b/src/video/windows/SDL_windowsevents.c index 00ef203c0..42127065d 100644 --- a/src/video/windows/SDL_windowsevents.c +++ b/src/video/windows/SDL_windowsevents.c @@ -979,7 +979,9 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) being lost. This then causes a cascading failure where SDL_WINDOWEVENT_ENTER / SDL_WINDOWEVENT_LEAVE can stop firing permanently, due to the focus being in the wrong state and TrackMouseEvent never resubscribing. */ - SDL_SetMouseFocus(NULL); + const SDL_bool isCapture = ((data->window->flags & SDL_WINDOW_MOUSE_CAPTURE) != 0); + if (!isCapture) + SDL_SetMouseFocus(NULL); returnCode = 0; break;