diff options
-rw-r--r-- | sway/input/seat.c | 4 | ||||
-rw-r--r-- | sway/tree/container.c | 1 |
2 files changed, 4 insertions, 1 deletions
diff --git a/sway/input/seat.c b/sway/input/seat.c index e3df6955..ad3584a0 100644 --- a/sway/input/seat.c +++ b/sway/input/seat.c | |||
@@ -6,6 +6,7 @@ | |||
6 | #include <wlr/types/wlr_output_layout.h> | 6 | #include <wlr/types/wlr_output_layout.h> |
7 | #include <wlr/types/wlr_xcursor_manager.h> | 7 | #include <wlr/types/wlr_xcursor_manager.h> |
8 | #include "sway/tree/container.h" | 8 | #include "sway/tree/container.h" |
9 | #include "sway/tree/workspace.h" | ||
9 | #include "sway/input/seat.h" | 10 | #include "sway/input/seat.h" |
10 | #include "sway/input/cursor.h" | 11 | #include "sway/input/cursor.h" |
11 | #include "sway/input/input-manager.h" | 12 | #include "sway/input/input-manager.h" |
@@ -398,7 +399,8 @@ void seat_set_focus_warp(struct sway_seat *seat, | |||
398 | } | 399 | } |
399 | if (last_ws) { | 400 | if (last_ws) { |
400 | ipc_event_workspace(last_ws, container, "focus"); | 401 | ipc_event_workspace(last_ws, container, "focus"); |
401 | if (last_ws->children->length == 0) { | 402 | if (!workspace_is_visible(last_ws) |
403 | && last_ws->children->length == 0) { | ||
402 | container_destroy(last_ws); | 404 | container_destroy(last_ws); |
403 | } | 405 | } |
404 | } | 406 | } |
diff --git a/sway/tree/container.c b/sway/tree/container.c index 41321dc8..ab8363bc 100644 --- a/sway/tree/container.c +++ b/sway/tree/container.c | |||
@@ -216,6 +216,7 @@ static bool container_reap_empty(struct sway_container *con) { | |||
216 | break; | 216 | break; |
217 | case C_WORKSPACE: | 217 | case C_WORKSPACE: |
218 | if (!workspace_is_visible(con) && con->children->length == 0) { | 218 | if (!workspace_is_visible(con) && con->children->length == 0) { |
219 | wlr_log(L_DEBUG, "Destroying workspace via reaper"); | ||
219 | container_workspace_destroy(con); | 220 | container_workspace_destroy(con); |
220 | return true; | 221 | return true; |
221 | } | 222 | } |