view:c Do not overwrite unmaximized dimensions on fullscreen

Before: window -> maximize -> fullscreen -> unfullscreen would reset pre maximized state
Now: window -> maximize -> fullscreen -> unfullscreen -> unmaximize works as expected
This commit is contained in:
Consolatis 2021-12-28 00:55:34 +01:00 committed by ARDiDo
parent 310c36c86d
commit 4b2a7a28c6

View file

@ -223,10 +223,12 @@ view_set_fullscreen(struct view *view, bool fullscreen,
view->toplevel_handle, fullscreen);
}
if (fullscreen) {
view->unmaximized_geometry.x = view->x;
view->unmaximized_geometry.y = view->y;
view->unmaximized_geometry.width = view->w;
view->unmaximized_geometry.height = view->h;
if (!view->maximized) {
view->unmaximized_geometry.x = view->x;
view->unmaximized_geometry.y = view->y;
view->unmaximized_geometry.width = view->w;
view->unmaximized_geometry.height = view->h;
}
if (!wlr_output) {
wlr_output = view_wlr_output(view);
@ -245,7 +247,16 @@ view_set_fullscreen(struct view *view, bool fullscreen,
view_move_resize(view, box);
} else {
/* restore to normal */
view_move_resize(view, view->unmaximized_geometry);
if (view->maximized) {
view->maximized = false;
view->x = view->unmaximized_geometry.x;
view->y = view->unmaximized_geometry.y;
view->w = view->unmaximized_geometry.width;
view->h = view->unmaximized_geometry.height;
view_maximize(view, true);
} else {
view_move_resize(view, view->unmaximized_geometry);
}
view->fullscreen = false;
}
}