]> git.mdlowis.com Git - proto/labwc.git/commitdiff
src/layers.c: Adjust views based on usable_area changes
authorConsolatis <35009135+Consolatis@users.noreply.github.com>
Thu, 30 Jun 2022 18:02:24 +0000 (20:02 +0200)
committerJohan Malm <johanmalm@users.noreply.github.com>
Thu, 30 Jun 2022 19:41:54 +0000 (20:41 +0100)
include/labwc.h
src/desktop.c
src/layers.c
src/output.c

index 416fb03cdb2c7a495f086a17af29eb9aa8e802b7..be6a629dacfa5773c6ac93b8b842edf97d3e2473 100644 (file)
@@ -460,6 +460,7 @@ void foreign_toplevel_handle_create(struct view *view);
 void desktop_move_to_front(struct view *view);
 void desktop_move_to_back(struct view *view);
 void desktop_focus_and_activate_view(struct seat *seat, struct view *view);
+void desktop_arrange_all_views(struct server *server);
 
 enum lab_cycle_dir {
        LAB_CYCLE_DIR_NONE,
index b19cd4bef5bae67ae1f3a0d8c13d35f97c609720..5a3ad8bcf6570ec590194e583f080c8fabef3f7d 100644 (file)
@@ -99,6 +99,16 @@ deactivate_all_views(struct server *server)
        }
 }
 
+void
+desktop_arrange_all_views(struct server *server)
+{
+       /* Adjust window positions/sizes */
+       struct view *view;
+       wl_list_for_each(view, &server->views, link) {
+               view_adjust_for_layout_change(view);
+       }
+}
+
 void
 desktop_focus_and_activate_view(struct seat *seat, struct view *view)
 {
index 8a03d3cb91a0a2b55c7ca5a27c63cb41ecb43dad..47c0d021926f85f57d1ab0d91919bd4e931c55a5 100644 (file)
@@ -98,7 +98,9 @@ layers_arrange(struct output *output)
                        !seat->focused_layer->current.keyboard_interactive) {
                seat_set_focus_layer(seat, NULL);
        }
-       /* FIXME: should we call a desktop_arrange_all_views() here? */
+
+       /* Finally re-arrange all views based on usable_area */
+       desktop_arrange_all_views(server);
 }
 
 static void
index d2634cf74bd481d614a101eb31be57262f5e37d6..688640f3f9f1ecbee2ee125644de44ff8cab972e 100644 (file)
@@ -209,10 +209,7 @@ static void
 output_update_for_layout_change(struct server *server)
 {
        /* Adjust window positions/sizes */
-       struct view *view;
-       wl_list_for_each(view, &server->views, link) {
-               view_adjust_for_layout_change(view);
-       }
+       desktop_arrange_all_views(server);
 
        /*
         * "Move" each wlr_output_cursor (in per-output coordinates) to