Browse Source

video: Only sync when programmatically entering/exiting fullscreen

Otherwise, the sync function can be recursively entered when the fullscreen state is updated by a window manager event.
Frank Praznik 1 year ago
parent
commit
835c733f4d
1 changed files with 4 additions and 1 deletions
  1. 4 1
      src/video/SDL_video.c

+ 4 - 1
src/video/SDL_video.c

@@ -1754,7 +1754,6 @@ int SDL_UpdateFullscreenMode(SDL_Window *window, SDL_bool fullscreen, SDL_bool c
 
 done:
     window->last_fullscreen_exclusive_display = display && (window->flags & SDL_WINDOW_FULLSCREEN) && window->fullscreen_exclusive ? display->id : 0;
-    SDL_SyncIfRequired(window);
     return 0;
 
 error:
@@ -2974,6 +2973,10 @@ int SDL_SetWindowFullscreen(SDL_Window *window, SDL_bool fullscreen)
         SDL_zero(window->current_fullscreen_mode);
     }
 
+    if (ret == 0) {
+        SDL_SyncIfRequired(window);
+    }
+
     return ret;
 }