From 8264fedce60743f93efc988ef282fa2a160faf5a Mon Sep 17 00:00:00 2001
From: "D.B" <thejan.2009@gmail.com>
Date: Sat, 8 Oct 2016 12:37:28 +0200
Subject: [PATCH] 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
---
 sway/handlers.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/sway/handlers.c b/sway/handlers.c
index f37473aa0..2235bc8b7 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,