]> git.mdlowis.com Git - proto/labwc.git/commitdiff
src/view.c: factor out special case natural geometry checks
authorConsolatis <35009135+Consolatis@users.noreply.github.com>
Sat, 31 Dec 2022 21:23:00 +0000 (22:23 +0100)
committerJohan Malm <johanmalm@users.noreply.github.com>
Sun, 1 Jan 2023 18:15:37 +0000 (18:15 +0000)
src/view.c

index 61e630a1b0f9de549ba3c47655ffed30b229024a..93191ec9702e6d6782c3705c233bcf2b43b25c78 100644 (file)
@@ -324,6 +324,11 @@ void
 view_store_natural_geometry(struct view *view)
 {
        assert(view);
+       if (view->maximized || view->tiled) {
+               /* Do not overwrite the stored geometry with special cases */
+               return;
+       }
+
        /**
         * If an application was started maximized or fullscreened, its
         * natural_geometry width/height may still be zero in which case we set
@@ -505,7 +510,7 @@ view_maximize(struct view *view, bool maximize, bool store_natural_geometry)
                 * a maximized view.
                 */
                interactive_cancel(view);
-               if (!view->tiled && store_natural_geometry) {
+               if (store_natural_geometry) {
                        view_store_natural_geometry(view);
                }
        }
@@ -631,9 +636,8 @@ view_set_fullscreen(struct view *view, bool fullscreen,
                 * a fullscreen view.
                 */
                interactive_cancel(view);
-               if (!view->maximized && !view->tiled) {
-                       view_store_natural_geometry(view);
-               }
+               view_store_natural_geometry(view);
+
                /* Hide decorations when going fullscreen */
                if (view->ssd_enabled) {
                        undecorate(view);
@@ -872,7 +876,7 @@ view_snap_to_edge(struct view *view, const char *direction,
        if (view->maximized) {
                /* Unmaximize + keep using existing natural_geometry */
                view_maximize(view, false, /*store_natural_geometry*/ false);
-       } else if (!view->tiled && store_natural_geometry) {
+       } else if (store_natural_geometry) {
                /* store current geometry as new natural_geometry */
                view_store_natural_geometry(view);
        }