diff --git a/sway/handlers.c b/sway/handlers.c index 3a4e31ae..b5e0a0e1 100644 --- a/sway/handlers.c +++ b/sway/handlers.c @@ -227,7 +227,17 @@ static void handle_view_destroyed(wlc_handle handle) { locked_container_focus = false; break; } - set_focused_container(get_focused_view(&root_container)); + + swayc_t *focused_view = get_focused_view(&root_container); + if(focused_view->type == C_WORKSPACE && focused_view->children->length == 0){ + sway_log(L_DEBUG, "we are here first"); + if(focused_view->floating->length > 0){ + sway_log(L_DEBUG, "we are here %d", focused_view->floating->length); + focused_view = focused_view->floating->items[focused_view->floating->length-1]; + focused_view = get_focused_view(focused_view); + } + } + set_focused_container(focused_view); } static void handle_view_focus(wlc_handle view, bool focus) {