From 00d84511781921312c1c02b4f49bbd114dc6e2bc Mon Sep 17 00:00:00 2001 From: Keith Bowes Date: Sun, 4 Dec 2022 08:54:40 -0500 Subject: [PATCH] Fixed crash when minimizing when more than one view is present --- waybox/xdg_shell.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/waybox/xdg_shell.c b/waybox/xdg_shell.c index 76ba6ee..5e7e969 100644 --- a/waybox/xdg_shell.c +++ b/waybox/xdg_shell.c @@ -214,13 +214,16 @@ static void xdg_toplevel_request_minimize(struct wl_listener *listener, void *da if (minimize_requested) { view->previous_position = view->current_position; view->current_position.y = -view->current_position.height; + + struct wb_view *next_view = wl_container_of(view->link.next, next_view, link); + if (wl_list_length(&view->link) > 1) + focus_view(next_view, next_view->xdg_toplevel->base->surface); + else + focus_view(view, view->xdg_toplevel->base->surface); } else { view->current_position = view->previous_position; } - struct wb_view *parent_view = wl_container_of(view->link.prev, parent_view, link); - struct wb_view *previous_view = wl_container_of(parent_view->link.prev, previous_view, link); - focus_view(previous_view, previous_view->xdg_toplevel->base->surface); wlr_scene_node_set_position(&view->scene_tree->node, view->current_position.x, view->current_position.y); }