Browse Source

When updating grab state, only activate windows that are grabbed, fullscreen, and shown.

Fixes https://github.com/libsdl-org/SDL/issues/5371
Sam Lantinga 3 years ago
parent
commit
4e784fce43
1 changed files with 4 additions and 7 deletions
  1. 4 7
      src/video/windows/SDL_windowswindow.c

+ 4 - 7
src/video/windows/SDL_windowswindow.c

@@ -859,13 +859,10 @@ WIN_SetWindowMouseGrab(_THIS, SDL_Window * window, SDL_bool grabbed)
 {
     WIN_UpdateClipCursor(window);
 
-    if (window->flags & SDL_WINDOW_FULLSCREEN) {
-        UINT flags = SWP_NOCOPYBITS | SWP_NOMOVE | SWP_NOSIZE;
-
-        if (!(window->flags & SDL_WINDOW_SHOWN)) {
-            flags |= SWP_NOACTIVATE;
-        }
-        WIN_SetWindowPositionInternal(_this, window, flags);
+    if (grabbed &&
+        (window->flags & SDL_WINDOW_FULLSCREEN) &&
+        (window->flags & SDL_WINDOW_SHOWN)) {
+        WIN_SetWindowPositionInternal(_this, window, SWP_NOCOPYBITS | SWP_NOMOVE | SWP_NOSIZE);
     }
 }