From be3fea0c1a35240400d9a9e4a3cb6d9a47b02a8a Mon Sep 17 00:00:00 2001 From: Johan Malm Date: Sun, 28 Feb 2021 18:12:10 +0000 Subject: [PATCH] view.c: remember unmaximized geometry --- include/labwc.h | 3 +++ src/view.c | 23 ++++++++--------------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/include/labwc.h b/include/labwc.h index 09021b7e..72cbb97f 100644 --- a/include/labwc.h +++ b/include/labwc.h @@ -194,6 +194,9 @@ struct view { /* geometry of the wlr_surface contained within the view */ int x, y, w, h; + /* geometry before maximize */ + struct wlr_box unmaximized_geometry; + /* * margin refers to the space between the extremities of the * wlr_surface and the max extents of the server-side decorations. diff --git a/src/view.c b/src/view.c index 9621b204..63d778a1 100644 --- a/src/view.c +++ b/src/view.c @@ -46,13 +46,14 @@ view_maximize(struct view *view, bool maximize) wlr_output_layout_get(layout, output); assert(layout); - if(output == NULL) - { - die("output NULL w/ x and y of: %d, %d", view->x, view->y); - } assert(output); assert(ol_output); + view->unmaximized_geometry.x = view->x; + view->unmaximized_geometry.y = view->y; + view->unmaximized_geometry.width = view->w; + view->unmaximized_geometry.height = view->h; + int x = ol_output->x; int y = ol_output->y; int width = output->width; @@ -83,17 +84,9 @@ view_maximize(struct view *view, bool maximize) view_move(view, box.x * output->scale, box.y * output->scale); view->maximized = true; - } - else - { - struct wlr_box box = { - .x = 20, - .y = 50, - .width = 640, - .height = 480 - }; - - view_move_resize(view, box); + } else { + /* unmaximize */ + view_move_resize(view, view->unmaximized_geometry); view->maximized = false; } view->impl->maximize(view, maximize); -- 2.52.0