Ver Fonte

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

Fixes https://github.com/libsdl-org/SDL/issues/5371
Sam Lantinga há 3 anos atrás
pai
commit
4e784fce43
1 ficheiros alterados com 4 adições e 7 exclusões
  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);
     }
 }