diff options
author | Drew DeVault <sir@cmpwn.com> | 2015-08-09 08:32:31 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2015-08-09 08:35:33 -0400 |
commit | 086691016e7cbe9794b73c174eaefa77e2d56498 (patch) | |
tree | 6d64cafadaf4812bb0362f23e66e9a50fe50bb3d | |
parent | f2b9fd6f39399a5f167723ab616f2b51290f08cd (diff) | |
download | sway-086691016e7cbe9794b73c174eaefa77e2d56498.tar.xz |
Handle unmanaged windows appropriately
-rw-r--r-- | sway/handlers.c | 2 | ||||
-rw-r--r-- | sway/layout.c | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/sway/handlers.c b/sway/handlers.c index 59e67f59..f1098835 100644 --- a/sway/handlers.c +++ b/sway/handlers.c @@ -33,6 +33,7 @@ bool handle_view_created(wlc_handle view) { } void handle_view_destroyed(wlc_handle view) { + sway_log(L_DEBUG, "Destroying window %d", view); destroy_view(get_swayc_for_handle(view, &root_container)); return true; } @@ -53,7 +54,6 @@ bool handle_key(wlc_handle view, uint32_t time, const struct wlc_modifiers bool ret = true; struct sway_mode *mode = config->current_mode; - sway_log(L_DEBUG, "key pressed: %d %d", sym, modifiers->mods); // Lowercase if necessary sym = tolower(sym); diff --git a/sway/layout.c b/sway/layout.c index 403ec13a..2a57ccce 100644 --- a/sway/layout.c +++ b/sway/layout.c @@ -121,6 +121,12 @@ swayc_t *get_focused_container(swayc_t *parent) { } void add_view(wlc_handle view_handle) { + const uint32_t type = wlc_view_get_type(view_handle); + if (type & WLC_BIT_UNMANAGED) { + sway_log(L_DEBUG, "Leaving view %d alone (unmanaged)", view_handle); + return; + } + swayc_t *parent = get_focused_container(&root_container); sway_log(L_DEBUG, "Adding new view %d under container %p %d", view_handle, parent, parent->type); @@ -142,6 +148,10 @@ void add_view(wlc_handle view_handle) { } void destroy_view(swayc_t *view) { + if (view == NULL) { + sway_log(L_DEBUG, "Warning: NULL passed into destroy_view"); + return; + } sway_log(L_DEBUG, "Destroying container %p", view); swayc_t *parent = view->parent; if (!parent) { |