aboutsummaryrefslogtreecommitdiffstats
path: root/sway/tree/root.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/tree/root.c')
-rw-r--r--sway/tree/root.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sway/tree/root.c b/sway/tree/root.c
index 233358d2..831c75a5 100644
--- a/sway/tree/root.c
+++ b/sway/tree/root.c
@@ -145,7 +145,10 @@ void root_scratchpad_show(struct sway_container *con) {
145 // Show the container 145 // Show the container
146 if (old_ws) { 146 if (old_ws) {
147 container_detach(con); 147 container_detach(con);
148 workspace_consider_destroy(old_ws); 148 // Make sure the last inactive container on the old workspace is above
149 // the workspace itself in the focus stack.
150 struct sway_node *node = seat_get_focus_inactive(seat, &old_ws->node);
151 seat_set_raw_focus(seat, node);
149 } else { 152 } else {
150 // Act on the ancestor of scratchpad hidden split containers 153 // Act on the ancestor of scratchpad hidden split containers
151 while (con->pending.parent) { 154 while (con->pending.parent) {
@@ -163,6 +166,9 @@ void root_scratchpad_show(struct sway_container *con) {
163 166
164 arrange_workspace(new_ws); 167 arrange_workspace(new_ws);
165 seat_set_focus(seat, seat_get_focus_inactive(seat, &con->node)); 168 seat_set_focus(seat, seat_get_focus_inactive(seat, &con->node));
169 if (old_ws) {
170 workspace_consider_destroy(old_ws);
171 }
166} 172}
167 173
168static void disable_fullscreen(struct sway_container *con, void *data) { 174static void disable_fullscreen(struct sway_container *con, void *data) {