@@ -257,45 +257,47 @@ void sdl_window::set_maximized(bool maximized)
257257
258258void sdl_window::set_fullscreen (bool fullscreen)
259259{
260- if (fullscreen != m_fullscreen )
260+ if (m_fullscreen == fullscreen )
261261 {
262- if (fullscreen)
263- {
264- const SDL_DisplayMode* sdl_display_mode = nullptr ;
265-
266- if (const auto sdl_window_display_id = SDL_GetDisplayForWindow (m_internal_window); sdl_window_display_id)
267- {
268- sdl_display_mode = SDL_GetDesktopDisplayMode (sdl_window_display_id);
269- }
262+ return ;
263+ }
270264
271- SDL_SetWindowFullscreenMode (m_internal_window, sdl_display_mode);
272- }
265+ if (fullscreen)
266+ {
267+ const SDL_DisplayMode* sdl_display_mode = nullptr ;
273268
274- // Hide cursor if visible
275- const bool is_cursor_visible = SDL_CursorVisible ();
276- if (is_cursor_visible)
269+ if (const auto sdl_window_display_id = SDL_GetDisplayForWindow (m_internal_window); sdl_window_display_id)
277270 {
278- SDL_HideCursor ( );
271+ sdl_display_mode = SDL_GetDesktopDisplayMode (sdl_window_display_id );
279272 }
280273
281- // Save global mouse position
282- math::fvec2 mouse_position = {};
283- SDL_GetGlobalMouseState (&mouse_position.x (), &mouse_position.y ());
274+ SDL_SetWindowFullscreenMode (m_internal_window, sdl_display_mode);
275+ }
276+
277+ // Hide cursor if visible
278+ const bool is_cursor_visible = SDL_CursorVisible ();
279+ if (is_cursor_visible)
280+ {
281+ SDL_HideCursor ();
282+ }
284283
285- // Change fullscreen state
286- SDL_SetWindowFullscreen (m_internal_window, fullscreen);
284+ // Save global mouse position
285+ math::fvec2 mouse_position = {};
286+ SDL_GetGlobalMouseState (&mouse_position.x (), &mouse_position.y ());
287287
288- // Restore global mouse position
289- SDL_WarpMouseGlobal (mouse_position. x (), mouse_position. y () );
288+ // Change fullscreen state
289+ SDL_SetWindowFullscreen (m_internal_window, fullscreen );
290290
291- // Restore cursor visibility
292- if (is_cursor_visible)
293- {
294- SDL_ShowCursor ();
295- }
296-
297- m_fullscreen = fullscreen ;
291+ // Restore global mouse position
292+ SDL_WarpMouseGlobal (mouse_position. x (), mouse_position. y ());
293+
294+ // Restore cursor visibility
295+ if (is_cursor_visible)
296+ {
297+ SDL_ShowCursor () ;
298298 }
299+
300+ m_fullscreen = fullscreen;
299301}
300302
301303void sdl_window::set_v_sync (bool v_sync)
0 commit comments