fix fair layout width/height

This commit is contained in:
yosh 2023-01-08 15:02:49 -05:00
parent d3f660dbd7
commit 5b5babb21b
2 changed files with 26 additions and 6 deletions

View File

@ -1109,8 +1109,13 @@ client_vfair(struct client_ctx *cc)
ci->bwidth = Conf.bwidth;
ci->geom.x = area.x + (i / rows) * w;
ci->geom.y = area.y + (i % rows) * (i < t ? h : rh);
ci->geom.w = w - (ci->bwidth * 2);
ci->geom.w = (i < t)
? w - (ci->bwidth * 2)
: area.x + area.w - ci->geom.x - (ci->bwidth * 2);
ci->geom.h = (i < t ? h : rh) - (ci->bwidth * 2);
if ((i + 1) == n || (i + 1) % rows == 0)
ci->geom.h = area.y + area.h -
ci->geom.y - (ci->bwidth * 2);
i++;
client_resize(ci, 1);
}
@ -1166,8 +1171,13 @@ client_hfair(struct client_ctx *cc)
ci->bwidth = Conf.bwidth;
ci->geom.y = area.y + (i / cols) * h;
ci->geom.x = area.x + (i % cols) * (i < t ? w : rw);
ci->geom.h = h - (ci->bwidth * 2);
ci->geom.h = (i < t)
? h - (ci->bwidth * 2)
: area.y + area.h - ci->geom.y - (ci->bwidth * 2);
ci->geom.w = (i < t ? w : rw) - (ci->bwidth * 2);
if ((i + 1) == n || (i + 1) % cols == 0)
ci->geom.w = area.x + area.w -
ci->geom.x - (ci->bwidth * 2);
i++;
client_resize(ci, 1);
}

View File

@ -42,7 +42,7 @@ index b3992c3..42ed9a4 100644
void kbfunc_client_toggle_group(void *, struct cargs *);
void kbfunc_client_movetogroup(void *, struct cargs *);
diff --git a/client.c b/client.c
index 59bc7b0..eba9a37 100644
index 59bc7b0..dab0ce9 100644
--- a/client.c
+++ b/client.c
@@ -28,6 +28,7 @@
@ -53,7 +53,7 @@ index 59bc7b0..eba9a37 100644
#include "calmwm.h"
@@ -1047,3 +1048,117 @@ client_vtile(struct client_ctx *cc)
@@ -1047,3 +1048,127 @@ client_vtile(struct client_ctx *cc)
client_resize(ci, 1);
}
}
@ -107,8 +107,13 @@ index 59bc7b0..eba9a37 100644
+ ci->bwidth = Conf.bwidth;
+ ci->geom.x = area.x + (i / rows) * w;
+ ci->geom.y = area.y + (i % rows) * (i < t ? h : rh);
+ ci->geom.w = w - (ci->bwidth * 2);
+ ci->geom.w = (i < t)
+ ? w - (ci->bwidth * 2)
+ : area.x + area.w - ci->geom.x - (ci->bwidth * 2);
+ ci->geom.h = (i < t ? h : rh) - (ci->bwidth * 2);
+ if ((i + 1) == n || (i + 1) % rows == 0)
+ ci->geom.h = area.y + area.h -
+ ci->geom.y - (ci->bwidth * 2);
+ i++;
+ client_resize(ci, 1);
+ }
@ -164,8 +169,13 @@ index 59bc7b0..eba9a37 100644
+ ci->bwidth = Conf.bwidth;
+ ci->geom.y = area.y + (i / cols) * h;
+ ci->geom.x = area.x + (i % cols) * (i < t ? w : rw);
+ ci->geom.h = h - (ci->bwidth * 2);
+ ci->geom.h = (i < t)
+ ? h - (ci->bwidth * 2)
+ : area.y + area.h - ci->geom.y - (ci->bwidth * 2);
+ ci->geom.w = (i < t ? w : rw) - (ci->bwidth * 2);
+ if ((i + 1) == n || (i + 1) % cols == 0)
+ ci->geom.w = area.x + area.w -
+ ci->geom.x - (ci->bwidth * 2);
+ i++;
+ client_resize(ci, 1);
+ }