]> git.mdlowis.com Git - proto/labwc.git/commitdiff
xdg: Fix positioning of initially-maximized views
authorJohn Lindgren <john@jlindgren.net>
Thu, 9 Feb 2023 21:06:07 +0000 (16:06 -0500)
committerConsolatis <35009135+Consolatis@users.noreply.github.com>
Fri, 10 Feb 2023 09:45:16 +0000 (10:45 +0100)
- Don't overwrite pending size in map() if it was already set
- Don't reposition view in map() if maximized/fullscreen

Also, as future-proofing in case we one day allow initially-tiled views,
replace explicit maximized/fullscreen checks with view_is_floating().

src/xdg.c
src/xwayland.c

index 8d39a03fd4704e0e00e2783597b8566e01b23fd2..dcf41b6ee3e083e122d9b0981235b4197b544c4c 100644 (file)
--- a/src/xdg.c
+++ b/src/xdg.c
@@ -340,16 +340,21 @@ xdg_toplevel_view_map(struct view *view)
                 * view_set_fullscreen/view_maximize() below). "Current"
                 * dimensions remain zero until handle_commit().
                 */
-               view->pending.width = xdg_surface->current.geometry.width;
-               view->pending.height = xdg_surface->current.geometry.height;
+               if (wlr_box_empty(&view->pending)) {
+                       view->pending.width =
+                               xdg_surface->current.geometry.width;
+                       view->pending.height =
+                               xdg_surface->current.geometry.height;
+               }
 
-               position_xdg_toplevel_view(view);
                if (!view->fullscreen && requested->fullscreen) {
                        view_set_fullscreen(view, true,
                                requested->fullscreen_output);
                } else if (!view->maximized && requested->maximized) {
                        view_maximize(view, true,
                                /*store_natural_geometry*/ true);
+               } else if (view_is_floating(view)) {
+                       position_xdg_toplevel_view(view);
                }
 
                view_moved(view);
index a6064ca87213d1dab5fa93475258dec69e1f1727..09ca3cc11ae3bcdb9d7d81dcdf4b093288d0cc4a 100644 (file)
@@ -534,7 +534,7 @@ map(struct view *view)
        if (!view->been_mapped) {
                view_set_decorations(view, want_deco(xwayland_surface));
 
-               if (!view->maximized && !view->fullscreen) {
+               if (view_is_floating(view)) {
                        set_initial_position(view, xwayland_surface);
                }
 
@@ -549,7 +549,7 @@ map(struct view *view)
                view->been_mapped = true;
        }
 
-       if (view->ssd_enabled && !view->fullscreen && !view->maximized) {
+       if (view->ssd_enabled && view_is_floating(view)) {
                top_left_edge_boundary_check(view);
        }