From d1feac4e2e411e4a8c930782d51833f090424260 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 1 Feb 2010 01:19:37 +0000 Subject: [PATCH] Fixed showing and hiding fullscreen windows --- src/video/SDL_sysvideo.h | 1 - src/video/SDL_video.c | 12 +++++------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/video/SDL_sysvideo.h b/src/video/SDL_sysvideo.h index 27880bffb..bc2991287 100644 --- a/src/video/SDL_sysvideo.h +++ b/src/video/SDL_sysvideo.h @@ -182,7 +182,6 @@ struct SDL_VideoDisplay int num_render_drivers; SDL_RenderDriver *render_drivers; - int num_windows; SDL_Window *windows; SDL_Window *fullscreen_window; diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index 0405ec98e..2f7d37361 100644 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -110,7 +110,7 @@ static SDL_VideoDevice *_this = NULL; SDL_UninitializedVideo(); \ return retval; \ } \ - if (!window || window->magic != &_this->window_magic) { \ + if (!window || window->magic != &_this->window_magic) { \ SDL_SetError("Invalid window"); \ return retval; \ } @@ -120,7 +120,7 @@ static SDL_VideoDevice *_this = NULL; SDL_UninitializedVideo(); \ return retval; \ } \ - if (!texture || texture->magic != &_this->texture_magic) { \ + if (!texture || texture->magic != &_this->texture_magic) { \ SDL_SetError("Invalid texture"); \ return retval; \ } @@ -772,7 +772,6 @@ static void SDL_UpdateFullscreenMode(SDL_Window * window, SDL_bool attempt) { SDL_VideoDisplay *display = window->display; - int i; /* See if we're already processing a window */ if (display->updating_fullscreen) { @@ -799,8 +798,8 @@ SDL_UpdateFullscreenMode(SDL_Window * window, SDL_bool attempt) if (FULLSCREEN_VISIBLE(window)) { /* Hide any other fullscreen windows */ - for (i = 0; i < display->num_windows; ++i) { - SDL_Window *other = &display->windows[i]; + SDL_Window *other; + for (other = display->windows; other; other = other->next) { if (other != window && FULLSCREEN_VISIBLE(other)) { SDL_MinimizeWindow(other); } @@ -810,8 +809,7 @@ SDL_UpdateFullscreenMode(SDL_Window * window, SDL_bool attempt) display->updating_fullscreen = SDL_FALSE; /* See if there are any fullscreen windows */ - for (i = 0; i < display->num_windows; ++i) { - window = &display->windows[i]; + for (window = display->windows; window; window = window->next) { if (FULLSCREEN_VISIBLE(window)) { SDL_DisplayMode fullscreen_mode; if (SDL_GetWindowDisplayMode(window, &fullscreen_mode) == 0) {