]> git.mdlowis.com Git - proto/labwc.git/commitdiff
view.c: remember unmaximized geometry
authorJohan Malm <jgm323@gmail.com>
Sun, 28 Feb 2021 18:12:10 +0000 (18:12 +0000)
committerJohan Malm <jgm323@gmail.com>
Sun, 28 Feb 2021 18:12:10 +0000 (18:12 +0000)
include/labwc.h
src/view.c

index 09021b7e10fa30bae0522fd0ff1e6f4448e99ee6..72cbb97f58e57a75fdeb7501bd26179af6030530 100644 (file)
@@ -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.
index 9621b2049172a32291cb9d61946c870eff452fcb..63d778a16c23b736593abb384844ea01cc263cbe 100644 (file)
@@ -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);