aboutsummaryrefslogtreecommitdiff
path: root/sway/handlers.c
diff options
context:
space:
mode:
authorD.B <thejan.2009@gmail.com>2016-10-08 12:37:28 +0200
committerD.B <thejan.2009@gmail.com>2016-10-08 12:37:28 +0200
commit8264fedce60743f93efc988ef282fa2a160faf5a (patch)
tree6042170fb3e5267e032cb52b7d8087854cc5f111 /sway/handlers.c
parentcd64df9b3a9bbe7ae47d0f431d6968289eb1b0a4 (diff)
fix for_window [] move scratchpad
- move wlc_view_set_mask before applying window criteria - check parent_container because container in scratchpad doesn't have a parent
Diffstat (limited to 'sway/handlers.c')
-rw-r--r--sway/handlers.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sway/handlers.c b/sway/handlers.c
index f37473aa..2235bc8b 100644
--- a/sway/handlers.c
+++ b/sway/handlers.c
@@ -376,6 +376,7 @@ static bool handle_view_created(wlc_handle handle) {
if (newview) {
ipc_event_window(newview, "new");
set_focused_container(newview);
+ wlc_view_set_mask(handle, VISIBLE);
swayc_t *output = swayc_parent_by_type(newview, C_OUTPUT);
arrange_windows(output, -1, -1);
// check if it matches for_window in config and execute if so
@@ -401,8 +402,9 @@ static bool handle_view_created(wlc_handle handle) {
// if parent container is a workspace, newview its only child and
// layout is tabbed/stacked, add a container around newview
swayc_t *parent_container = newview->parent;
- if (parent_container->type == C_WORKSPACE && parent_container->children->length == 1 &&
- (parent_container->layout == L_TABBED || parent_container->layout == L_STACKED)) {
+ if (parent_container && parent_container->type == C_WORKSPACE &&
+ parent_container->children && parent_container->children->length == 1 &&
+ (parent_container->layout == L_TABBED || parent_container->layout == L_STACKED)) {
swayc_t *container = new_container(newview, parent_container->layout);
set_focused_container(newview);
arrange_windows(container, -1, -1);
@@ -413,8 +415,8 @@ static bool handle_view_created(wlc_handle handle) {
*h = handle;
sway_log(L_DEBUG, "Adding unmanaged window %p to %p", h, output->unmanaged);
list_add(output->unmanaged, h);
+ wlc_view_set_mask(handle, VISIBLE);
}
- wlc_view_set_mask(handle, VISIBLE);
if (return_to_workspace && current_ws != swayc_active_workspace()) {
// we were on one workspace, switched to another to add this view,