# HG changeset patch # User Sam Lantinga # Date 1264987177 0 # Node ID fb905d5674ccbd377d8a6b56a114724571254f62 # Parent 076c12750bc492dce5f6222374c1588eb0198b90 Fixed showing and hiding fullscreen windows diff -r 076c12750bc4 -r fb905d5674cc src/video/SDL_sysvideo.h --- a/src/video/SDL_sysvideo.h Wed Jan 27 05:14:22 2010 +0000 +++ b/src/video/SDL_sysvideo.h Mon Feb 01 01:19:37 2010 +0000 @@ -182,7 +182,6 @@ int num_render_drivers; SDL_RenderDriver *render_drivers; - int num_windows; SDL_Window *windows; SDL_Window *fullscreen_window; diff -r 076c12750bc4 -r fb905d5674cc src/video/SDL_video.c --- a/src/video/SDL_video.c Wed Jan 27 05:14:22 2010 +0000 +++ b/src/video/SDL_video.c Mon Feb 01 01:19:37 2010 +0000 @@ -110,7 +110,7 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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) {