From e0f8cf78eeddaec8b0855820dc468e3bf1cc5617 Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Wed, 20 May 2026 20:12:33 +0200 Subject: [PATCH] =?UTF-8?q?fix(fullscreen):=20seleccionar=20mode=20'border?= =?UTF-8?q?less=20desktop'=20expl=C3=ADcitament=20en=20toggleFullscreen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A SDL3, SDL_SetWindowFullscreen(true) sol hereta el SDL_DisplayMode que tingués la finestra. Sense una crida prèvia a SDL_SetWindowFullscreenMode(win, nullptr), el comportament és no determinista entre invocacions (i pot acabar en mode exclusiu si abans hi havia hagut un mode setejat). Afegim la crida amb mode=nullptr just abans d'activar el fullscreen perquè sempre entrem en "borderless desktop" (cobrint el monitor on viu la finestra). --- source/core/rendering/sdl_manager.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/core/rendering/sdl_manager.cpp b/source/core/rendering/sdl_manager.cpp index 6d4d587..a4d2bde 100644 --- a/source/core/rendering/sdl_manager.cpp +++ b/source/core/rendering/sdl_manager.cpp @@ -254,6 +254,10 @@ void SDLManager::toggleFullscreen() { windowed_width_ = current_width_; windowed_height_ = current_height_; is_fullscreen_ = true; + // SDL3: cal seleccionar explícitament el mode "borderless desktop" + // (mode=nullptr) abans d'activar el fullscreen. Sense això, el + // comportament depèn del mode que tingués la finestra anteriorment. + SDL_SetWindowFullscreenMode(finestra_, nullptr); SDL_SetWindowFullscreen(finestra_, true); std::cout << "F3: Fullscreen activat (guardada: " << windowed_width_ << "x" << windowed_height_ << ")" << '\n';