From 7fbb8b785e229341171470228fea22caac3ee896 Mon Sep 17 00:00:00 2001 From: taiyu Date: Sun, 30 Aug 2015 16:28:21 -0700 Subject: #154 destroy view handler properly destroys views --- sway/handlers.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'sway') diff --git a/sway/handlers.c b/sway/handlers.c index 4c21c6b9..b12be9f7 100644 --- a/sway/handlers.c +++ b/sway/handlers.c @@ -230,16 +230,12 @@ static void handle_view_destroyed(wlc_handle handle) { sway_log(L_DEBUG, "Destroying window %lu", handle); swayc_t *view = swayc_by_handle(handle); + // destroy views by type switch (wlc_view_get_type(handle)) { // regular view created regularly case 0: case WLC_BIT_MODAL: case WLC_BIT_POPUP: - if (view) { - swayc_t *parent = destroy_view(view); - remove_view_from_scratchpad(view); - arrange_windows(parent, -1, -1); - } break; // DMENU has this flag, and takes view_focus, but other things with this // flag dont @@ -251,6 +247,11 @@ static void handle_view_destroyed(wlc_handle handle) { break; } + if (view) { + swayc_t *parent = destroy_view(view); + remove_view_from_scratchpad(view); + arrange_windows(parent, -1, -1); + } set_focused_container(get_focused_view(&root_container)); } -- cgit v1.2.3