diff --git a/src/output.c b/src/output.c index 61dcc286..e7758d7f 100644 --- a/src/output.c +++ b/src/output.c @@ -156,6 +156,7 @@ output_init(struct server *server) wlr_log(WLR_ERROR, "unable to create output layout"); exit(EXIT_FAILURE); } + wlr_scene_attach_output_layout(server->scene, server->output_layout); /* Enable screen recording with wf-recorder */ wlr_xdg_output_manager_v1_create(server->wl_display, @@ -319,12 +320,11 @@ handle_output_layout_change(struct wl_listener *listener, void *data) } struct output *output; - /* FIXME: Sort this out */ -// wl_list_for_each(output, &server->outputs, link) { -// if (output) { -// arrange_layers(output); -// } -// } + wl_list_for_each(output, &server->outputs, link) { + if (output) { + arrange_layers(output); + } + } output_update_for_layout_change(server); } } diff --git a/src/server.c b/src/server.c index f23d9055..fccde143 100644 --- a/src/server.c +++ b/src/server.c @@ -216,8 +216,6 @@ server_init(struct server *server) wl_list_init(&server->views); wl_list_init(&server->unmanaged_surfaces); - output_init(server); - server->scene = wlr_scene_create(); if (!server->scene) { wlr_log(WLR_ERROR, "unable to create scene"); @@ -229,7 +227,8 @@ server_init(struct server *server) #endif server->menu_tree = wlr_scene_tree_create(&server->scene->node); server->osd_tree = wlr_scene_tree_create(&server->scene->node); - wlr_scene_attach_output_layout(server->scene, server->output_layout); + + output_init(server); /* * Create some hands-off wlroots interfaces. The compositor is