diff options
-rw-r--r-- | sway/layout.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/sway/layout.c b/sway/layout.c index a7206e9a..3629df24 100644 --- a/sway/layout.c +++ b/sway/layout.c | |||
@@ -1113,7 +1113,17 @@ swayc_t *get_swayc_in_direction_under(swayc_t *container, enum movement_directio | |||
1113 | if (can_move) { | 1113 | if (can_move) { |
1114 | int desired = index_child(container) + diff; | 1114 | int desired = index_child(container) + diff; |
1115 | if (container->is_floating) { | 1115 | if (container->is_floating) { |
1116 | can_move = false; | 1116 | if (desired < 0) { |
1117 | wrap_candidate = parent->floating->items[parent->floating->length-1]; | ||
1118 | } else if (desired >= parent->floating->length){ | ||
1119 | wrap_candidate = parent->floating->items[0]; | ||
1120 | } else { | ||
1121 | wrap_candidate = parent->floating->items[desired]; | ||
1122 | } | ||
1123 | if (wrap_candidate) { | ||
1124 | wlc_view_bring_to_front(wrap_candidate->handle); | ||
1125 | } | ||
1126 | return wrap_candidate; | ||
1117 | } else if (desired < 0 || desired >= parent->children->length) { | 1127 | } else if (desired < 0 || desired >= parent->children->length) { |
1118 | can_move = false; | 1128 | can_move = false; |
1119 | int len = parent->children->length; | 1129 | int len = parent->children->length; |