diff options
-rw-r--r-- | sway/handlers.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sway/handlers.c b/sway/handlers.c index af68b765..4d1dc56c 100644 --- a/sway/handlers.c +++ b/sway/handlers.c | |||
@@ -230,7 +230,15 @@ static void handle_view_destroyed(wlc_handle handle) { | |||
230 | locked_container_focus = false; | 230 | locked_container_focus = false; |
231 | break; | 231 | break; |
232 | } | 232 | } |
233 | set_focused_container(get_focused_view(&root_container)); | 233 | |
234 | swayc_t *focused_view = get_focused_view(&root_container); | ||
235 | if (focused_view->type == C_WORKSPACE && focused_view->children->length == 0) { | ||
236 | if (focused_view->floating->length > 0) { | ||
237 | focused_view = focused_view->floating->items[focused_view->floating->length-1]; | ||
238 | focused_view = get_focused_view(focused_view); | ||
239 | } | ||
240 | } | ||
241 | set_focused_container(focused_view); | ||
234 | } | 242 | } |
235 | 243 | ||
236 | static void handle_view_focus(wlc_handle view, bool focus) { | 244 | static void handle_view_focus(wlc_handle view, bool focus) { |