Skip to content

Commit

Permalink
Fixed bug 3030 - SDL_RecreateWindow fails to restore title, icon, etc.
Browse files Browse the repository at this point in the history
Adam M.

It loses the title and icon when window recreation fails. For instance, this may happen when trying to create an OpenGL ES window on a system that doesn't support it. But at that point, the title and icon have already been lost.
  • Loading branch information
slouken committed Jun 23, 2015
1 parent ded3a16 commit b7aa856
Showing 1 changed file with 6 additions and 10 deletions.
16 changes: 6 additions & 10 deletions src/video/SDL_video.c
Expand Up @@ -1388,8 +1388,6 @@ SDL_CreateWindowFrom(const void *data)
int
SDL_RecreateWindow(SDL_Window * window, Uint32 flags)
{
char *title = window->title;
SDL_Surface *icon = window->icon;
SDL_bool loaded_opengl = SDL_FALSE;

if ((flags & SDL_WINDOW_OPENGL) && !_this->GL_CreateContext) {
Expand Down Expand Up @@ -1429,8 +1427,6 @@ SDL_RecreateWindow(SDL_Window * window, Uint32 flags)
}
}

window->title = NULL;
window->icon = NULL;
window->flags = ((flags & CREATE_FLAGS) | SDL_WINDOW_HIDDEN);
window->last_fullscreen_flags = window->flags;
window->is_destroying = SDL_FALSE;
Expand All @@ -1444,17 +1440,17 @@ SDL_RecreateWindow(SDL_Window * window, Uint32 flags)
return -1;
}
}

if (flags & SDL_WINDOW_FOREIGN) {
window->flags |= SDL_WINDOW_FOREIGN;
}

if (title) {
SDL_SetWindowTitle(window, title);
SDL_free(title);
if (_this->SetWindowTitle && window->title) {
_this->SetWindowTitle(_this, window);
}
if (icon) {
SDL_SetWindowIcon(window, icon);
SDL_FreeSurface(icon);

if (_this->SetWindowIcon && window->icon) {
_this->SetWindowIcon(_this, window, window->icon);
}

if (window->hit_test) {
Expand Down

0 comments on commit b7aa856

Please sign in to comment.