Skip to content

Commit

Permalink
Fixed Bug 3215 - Win32: 'fullscreen' app doesn't always extend to top…
Browse files Browse the repository at this point in the history
… of screen
  • Loading branch information
DavidLudwig committed Dec 30, 2015
1 parent 9d789eb commit 854cf7a
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/video/windows/SDL_windowsevents.c
Expand Up @@ -419,11 +419,15 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
SDL_ToggleModState(KMOD_CAPS, (GetKeyState(VK_CAPITAL) & 0x0001) != 0);
SDL_ToggleModState(KMOD_NUM, (GetKeyState(VK_NUMLOCK) & 0x0001) != 0);
} else {
data->in_window_deactivation = SDL_TRUE;

if (SDL_GetKeyboardFocus() == data->window) {
SDL_SetKeyboardFocus(NULL);
}

ClipCursor(NULL);

data->in_window_deactivation = SDL_FALSE;
}
}
returnCode = 0;
Expand Down
18 changes: 18 additions & 0 deletions src/video/windows/SDL_windowswindow.c
Expand Up @@ -559,7 +559,25 @@ WIN_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display,
y = bounds.y;
w = bounds.w;
h = bounds.h;

/* Unset the maximized flag. This fixes
https://bugzilla.libsdl.org/show_bug.cgi?id=3215
*/
if (style & WS_MAXIMIZE) {
data->windowed_mode_was_maximized = SDL_TRUE;
style &= ~WS_MAXIMIZE;
}
} else {
/* Restore window-maximization state, as applicable.
Special care is taken to *not* do this if and when we're
alt-tab'ing away (to some other window; as indicated by
in_window_deactivation), otherwise
https://bugzilla.libsdl.org/show_bug.cgi?id=3215 can reproduce!
*/
if (data->windowed_mode_was_maximized && !data->in_window_deactivation) {
style |= WS_MAXIMIZE;
data->windowed_mode_was_maximized = SDL_FALSE;
}
rect.left = 0;
rect.top = 0;
rect.right = window->windowed.w;
Expand Down
2 changes: 2 additions & 0 deletions src/video/windows/SDL_windowswindow.h
Expand Up @@ -42,6 +42,8 @@ typedef struct
SDL_bool in_border_change;
SDL_bool in_title_click;
SDL_bool focus_click_pending;
SDL_bool windowed_mode_was_maximized;
SDL_bool in_window_deactivation;
struct SDL_VideoData *videodata;
#if SDL_VIDEO_OPENGL_EGL
EGLSurface egl_surface;
Expand Down

0 comments on commit 854cf7a

Please sign in to comment.