mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2024-12-20 22:16:49 +01:00
Fixed Bug 3215 - Win32: 'fullscreen' app doesn't always extend to top of screen
This commit is contained in:
parent
9d789ebe0d
commit
854cf7ac40
@ -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_CAPS, (GetKeyState(VK_CAPITAL) & 0x0001) != 0);
|
||||||
SDL_ToggleModState(KMOD_NUM, (GetKeyState(VK_NUMLOCK) & 0x0001) != 0);
|
SDL_ToggleModState(KMOD_NUM, (GetKeyState(VK_NUMLOCK) & 0x0001) != 0);
|
||||||
} else {
|
} else {
|
||||||
|
data->in_window_deactivation = SDL_TRUE;
|
||||||
|
|
||||||
if (SDL_GetKeyboardFocus() == data->window) {
|
if (SDL_GetKeyboardFocus() == data->window) {
|
||||||
SDL_SetKeyboardFocus(NULL);
|
SDL_SetKeyboardFocus(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
ClipCursor(NULL);
|
ClipCursor(NULL);
|
||||||
|
|
||||||
|
data->in_window_deactivation = SDL_FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
returnCode = 0;
|
returnCode = 0;
|
||||||
|
@ -559,7 +559,25 @@ WIN_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display,
|
|||||||
y = bounds.y;
|
y = bounds.y;
|
||||||
w = bounds.w;
|
w = bounds.w;
|
||||||
h = bounds.h;
|
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 {
|
} 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.left = 0;
|
||||||
rect.top = 0;
|
rect.top = 0;
|
||||||
rect.right = window->windowed.w;
|
rect.right = window->windowed.w;
|
||||||
|
@ -42,6 +42,8 @@ typedef struct
|
|||||||
SDL_bool in_border_change;
|
SDL_bool in_border_change;
|
||||||
SDL_bool in_title_click;
|
SDL_bool in_title_click;
|
||||||
SDL_bool focus_click_pending;
|
SDL_bool focus_click_pending;
|
||||||
|
SDL_bool windowed_mode_was_maximized;
|
||||||
|
SDL_bool in_window_deactivation;
|
||||||
struct SDL_VideoData *videodata;
|
struct SDL_VideoData *videodata;
|
||||||
#if SDL_VIDEO_OPENGL_EGL
|
#if SDL_VIDEO_OPENGL_EGL
|
||||||
EGLSurface egl_surface;
|
EGLSurface egl_surface;
|
||||||
|
Loading…
Reference in New Issue
Block a user