diff options
Diffstat (limited to 'sway/tree')
-rw-r--r-- | sway/tree/container.c | 2 | ||||
-rw-r--r-- | sway/tree/output.c | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/sway/tree/container.c b/sway/tree/container.c index 9358dad7..933907f4 100644 --- a/sway/tree/container.c +++ b/sway/tree/container.c | |||
@@ -831,7 +831,7 @@ void container_floating_move_to(struct sway_container *con, | |||
831 | } | 831 | } |
832 | struct sway_workspace *new_workspace = | 832 | struct sway_workspace *new_workspace = |
833 | output_get_active_workspace(new_output); | 833 | output_get_active_workspace(new_output); |
834 | if (old_workspace != new_workspace) { | 834 | if (new_workspace && old_workspace != new_workspace) { |
835 | container_detach(con); | 835 | container_detach(con); |
836 | workspace_add_floating(new_workspace, con); | 836 | workspace_add_floating(new_workspace, con); |
837 | arrange_workspace(old_workspace); | 837 | arrange_workspace(old_workspace); |
diff --git a/sway/tree/output.c b/sway/tree/output.c index 146bc423..e0a66e0b 100644 --- a/sway/tree/output.c +++ b/sway/tree/output.c | |||
@@ -143,6 +143,9 @@ void output_enable(struct sway_output *output, struct output_config *oc) { | |||
143 | static void evacuate_sticky(struct sway_workspace *old_ws, | 143 | static void evacuate_sticky(struct sway_workspace *old_ws, |
144 | struct sway_output *new_output) { | 144 | struct sway_output *new_output) { |
145 | struct sway_workspace *new_ws = output_get_active_workspace(new_output); | 145 | struct sway_workspace *new_ws = output_get_active_workspace(new_output); |
146 | if (!sway_assert(new_ws, "New output does not have a workspace")) { | ||
147 | return; | ||
148 | } | ||
146 | while (old_ws->floating->length) { | 149 | while (old_ws->floating->length) { |
147 | struct sway_container *sticky = old_ws->floating->items[0]; | 150 | struct sway_container *sticky = old_ws->floating->items[0]; |
148 | container_detach(sticky); | 151 | container_detach(sticky); |