aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sway/commands.c2
-rw-r--r--sway/handlers.c4
2 files changed, 5 insertions, 1 deletions
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));