summaryrefslogtreecommitdiffstats
path: root/sway
diff options
context:
space:
mode:
authorLibravatar wil <william.barsse@gmail.com>2016-12-21 16:58:38 +0100
committerLibravatar wil <william.barsse@gmail.com>2016-12-29 20:31:30 +0100
commited71e67d7e46746a36a4c2437d143f52aa17b666 (patch)
treecf50a88d7834dade7df911923148f0aa0143194e /sway
parentAdded "layout incnmaster|incncol" commands (diff)
downloadsway-ed71e67d7e46746a36a4c2437d143f52aa17b666.tar.gz
sway-ed71e67d7e46746a36a4c2437d143f52aa17b666.tar.zst
sway-ed71e67d7e46746a36a4c2437d143f52aa17b666.zip
[fix] handle cases where nb_master > children->length in auto layout
Diffstat (limited to 'sway')
-rw-r--r--sway/layout.c5
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