From b755fd073e29819486b4899a40fb3a46dba0a81a Mon Sep 17 00:00:00 2001
From: crondog <crondog@gmail.com>
Date: Tue, 5 Jan 2016 10:55:29 +1100
Subject: [PATCH] Return focus to fullscreen view

This fixes https://github.com/SirCmpwn/sway/issues/431 by returning
focus to the fullscreen view. Also it fixes the issue with the
fullscreen view pointer not being set which did my head in
---
 sway/commands.c | 2 +-
 sway/handlers.c | 4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/sway/commands.c b/sway/commands.c
index 38019be5..9cc33b9c 100644
--- a/sway/commands.c
+++ b/sway/commands.c
@@ -1464,7 +1464,7 @@ static struct cmd_results *cmd_fullscreen(int argc, char **argv) {
 	wlc_view_set_state(container->handle, WLC_BIT_FULLSCREEN, !current);
 	// Resize workspace if going from  fullscreen -> notfullscreen
 	// otherwise just resize container
-	if (current) {
+	if (!current) {
 		arrange_windows(workspace, -1, -1);
 		workspace->fullscreen = container;
 	} else {
diff --git a/sway/handlers.c b/sway/handlers.c
index 6c6d0e60..3cc5cf3e 100644
--- a/sway/handlers.c
+++ b/sway/handlers.c
@@ -220,6 +220,10 @@ static bool handle_view_created(wlc_handle handle) {
 			// refocus in-between command lists
 			set_focused_container(newview);
 		}
+		swayc_t *workspace = swayc_parent_by_type(focused, C_WORKSPACE);
+		if (workspace && workspace->fullscreen) {
+			set_focused_container(workspace->fullscreen);
+		}
 	} else {
 		swayc_t *output = swayc_parent_by_type(focused, C_OUTPUT);
 		wlc_handle *h = malloc(sizeof(wlc_handle));