From 83da9672bdba0a54ed8728a4d7c3f08ad1c3a1f4 Mon Sep 17 00:00:00 2001 From: Johan Malm Date: Sat, 11 Mar 2023 21:15:42 +0000 Subject: [PATCH] [wip] close layer popups --- src/desktop.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/desktop.c b/src/desktop.c index 0dbdb3b4..5100de1e 100644 --- a/src/desktop.c +++ b/src/desktop.c @@ -55,6 +55,24 @@ desktop_arrange_all_views(struct server *server) } } +static void +close_all_layer_popups(struct server *server) +{ + struct output *output; + wl_list_for_each(output, &server->outputs, link) { + struct wlr_scene_node *node; + wl_list_for_each(node, &output->layer_popup_tree->children, link) { + struct node_descriptor *desc = node->data; + if (desc->type != LAB_NODE_DESC_LAYER_POPUP) { + continue; + } + struct lab_layer_popup *popup; + popup = node_layer_popup_from_node(node); + // popup_handle_destroy(&popup->destroy, popup); + } + } +} + static void close_all_popups(struct server *server) { @@ -67,6 +85,7 @@ close_all_popups(struct server *server) void desktop_focus_and_activate_view(struct seat *seat, struct view *view) { + close_all_layer_popups(seat->server); if (!view) { close_all_popups(seat->server); seat_focus_surface(seat, NULL);