mirror of
https://github.com/godotengine/godot.git
synced 2025-10-19 07:53:26 +00:00
[Windows] Save and restore window rect when switching to/from maximized+borderless mode.
This commit is contained in:
parent
b267c2fc6c
commit
01d7abb9d0
1 changed files with 21 additions and 1 deletions
|
@ -2469,6 +2469,21 @@ void DisplayServerWindows::window_set_mode(WindowMode p_mode, WindowID p_window)
|
|||
}
|
||||
}
|
||||
|
||||
if ((wd.maximized || wd.was_maximized_pre_fs) && wd.borderless && p_mode != WINDOW_MODE_MINIMIZED && p_mode != WINDOW_MODE_FULLSCREEN && p_mode != WINDOW_MODE_EXCLUSIVE_FULLSCREEN) {
|
||||
RECT rect;
|
||||
if (wd.pre_fs_valid) {
|
||||
rect = wd.pre_fs_rect;
|
||||
} else {
|
||||
rect.left = 0;
|
||||
rect.right = wd.width;
|
||||
rect.top = 0;
|
||||
rect.bottom = wd.height;
|
||||
}
|
||||
|
||||
ShowWindow(wd.hWnd, SW_RESTORE);
|
||||
MoveWindow(wd.hWnd, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, TRUE);
|
||||
}
|
||||
|
||||
if (p_mode == WINDOW_MODE_WINDOWED) {
|
||||
ShowWindow(wd.hWnd, SW_NORMAL);
|
||||
wd.maximized = false;
|
||||
|
@ -2482,6 +2497,11 @@ void DisplayServerWindows::window_set_mode(WindowMode p_mode, WindowID p_window)
|
|||
}
|
||||
|
||||
if (p_mode == WINDOW_MODE_MAXIMIZED && wd.borderless) {
|
||||
if (!was_fullscreen && !(wd.maximized && wd.borderless)) {
|
||||
// Save non-fullscreen rect before entering fullscreen.
|
||||
GetWindowRect(wd.hWnd, &wd.pre_fs_rect);
|
||||
wd.pre_fs_valid = true;
|
||||
}
|
||||
ShowWindow(wd.hWnd, SW_NORMAL);
|
||||
wd.maximized = true;
|
||||
wd.minimized = false;
|
||||
|
@ -2515,7 +2535,7 @@ void DisplayServerWindows::window_set_mode(WindowMode p_mode, WindowID p_window)
|
|||
// Save previous maximized stare.
|
||||
wd.was_maximized_pre_fs = wd.maximized;
|
||||
|
||||
if (!was_fullscreen) {
|
||||
if (!was_fullscreen && !(wd.maximized && wd.borderless)) {
|
||||
// Save non-fullscreen rect before entering fullscreen.
|
||||
GetWindowRect(wd.hWnd, &wd.pre_fs_rect);
|
||||
wd.pre_fs_valid = true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue