diff options
Diffstat (limited to 'sway/commands.c')
-rw-r--r-- | sway/commands.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/sway/commands.c b/sway/commands.c index 42845f65..13fc29ad 100644 --- a/sway/commands.c +++ b/sway/commands.c | |||
@@ -344,14 +344,12 @@ static struct cmd_results *cmd_floating(int argc, char **argv) { | |||
344 | 344 | ||
345 | } else if (view->is_floating && !wants_floating) { | 345 | } else if (view->is_floating && !wants_floating) { |
346 | // Delete the view from the floating list and unset its is_floating flag | 346 | // Delete the view from the floating list and unset its is_floating flag |
347 | // Using length-1 as the index is safe because the view must be the currently | ||
348 | // focused floating output | ||
349 | remove_child(view); | 347 | remove_child(view); |
350 | view->is_floating = false; | 348 | view->is_floating = false; |
351 | // Get the properly focused container, and add in the view there | 349 | // Get the properly focused container, and add in the view there |
352 | swayc_t *focused = container_under_pointer(); | 350 | swayc_t *focused = container_under_pointer(); |
353 | // If focused is null, it's because the currently focused container is a workspace | 351 | // If focused is null, it's because the currently focused container is a workspace |
354 | if (focused == NULL) { | 352 | if (focused == NULL || focused->is_floating) { |
355 | focused = swayc_active_workspace(); | 353 | focused = swayc_active_workspace(); |
356 | } | 354 | } |
357 | set_focused_container(focused); | 355 | set_focused_container(focused); |