Restore maximized window state when returning from fullscreen
This commit is contained in:
parent
f36b71350d
commit
95e6e80921
@ -596,14 +596,17 @@ do_toggle_fullscreen(OSWindow *w, unsigned int flags, bool restore_sizes) {
|
||||
int width, height, x, y;
|
||||
glfwGetWindowSize(w->handle, &width, &height);
|
||||
glfwGetWindowPos(w->handle, &x, &y);
|
||||
bool was_maximized = glfwGetWindowAttrib(w->handle, GLFW_MAXIMIZED);
|
||||
if (glfwToggleFullscreen(w->handle, flags)) {
|
||||
w->before_fullscreen.is_set = true;
|
||||
w->before_fullscreen.w = width; w->before_fullscreen.h = height; w->before_fullscreen.x = x; w->before_fullscreen.y = y;
|
||||
w->before_fullscreen.was_maximized = was_maximized;
|
||||
return true;
|
||||
}
|
||||
if (w->before_fullscreen.is_set && restore_sizes) {
|
||||
glfwSetWindowSize(w->handle, w->before_fullscreen.w, w->before_fullscreen.h);
|
||||
glfwSetWindowPos(w->handle, w->before_fullscreen.x, w->before_fullscreen.y);
|
||||
if (w->before_fullscreen.was_maximized) glfwMaximizeWindow(w->handle);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -167,7 +167,7 @@ typedef struct {
|
||||
uint32_t offscreen_framebuffer;
|
||||
struct {
|
||||
int x, y, w, h;
|
||||
bool is_set;
|
||||
bool is_set, was_maximized;
|
||||
} before_fullscreen;
|
||||
int viewport_width, viewport_height, window_width, window_height;
|
||||
double viewport_x_ratio, viewport_y_ratio;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user