diff options
author | wil <william.barsse@gmail.com> | 2016-12-21 16:58:38 +0100 |
---|---|---|
committer | wil <william.barsse@gmail.com> | 2016-12-29 20:31:30 +0100 |
commit | ed71e67d7e46746a36a4c2437d143f52aa17b666 (patch) | |
tree | cf50a88d7834dade7df911923148f0aa0143194e | |
parent | Added "layout incnmaster|incncol" commands (diff) | |
download | sway-ed71e67d7e46746a36a4c2437d143f52aa17b666.tar.gz sway-ed71e67d7e46746a36a4c2437d143f52aa17b666.tar.zst sway-ed71e67d7e46746a36a4c2437d143f52aa17b666.zip |
[fix] handle cases where nb_master > children->length in auto layout
-rw-r--r-- | sway/layout.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/sway/layout.c b/sway/layout.c index 52473d0d..0428ecf9 100644 --- a/sway/layout.c +++ b/sway/layout.c | |||
@@ -1209,15 +1209,14 @@ void apply_auto_layout(swayc_t *container, const double x, const double y, | |||
1209 | group_dim = old_group_dim[layout_group] * scale; | 1209 | group_dim = old_group_dim[layout_group] * scale; |
1210 | if (container->nb_master > 0 && layout_group == 0) { | 1210 | if (container->nb_master > 0 && layout_group == 0) { |
1211 | start = 0; | 1211 | start = 0; |
1212 | end = container->nb_master; | 1212 | end = MIN(container->nb_master, container->children->length); |
1213 | } else { | 1213 | } else { |
1214 | if (group == 0) { | 1214 | if (group == 0) { |
1215 | start = container->nb_master; | 1215 | start = container->nb_master; |
1216 | } else { | 1216 | } else { |
1217 | start = end; | 1217 | start = end; |
1218 | } | 1218 | } |
1219 | end = start + | 1219 | end = start + (nb_slaves - start + container->nb_master) / (nb_groups - layout_group); |
1220 | (nb_slaves - start + container->nb_master) / (nb_groups - layout_group); | ||
1221 | } | 1220 | } |
1222 | if (group == nb_groups - 1) { | 1221 | if (group == nb_groups - 1) { |
1223 | group_dim = pos_maj + dim_maj - pos; // remaining width | 1222 | group_dim = pos_maj + dim_maj - pos; // remaining width |