summaryrefslogtreecommitdiff
path: root/sys/src
diff options
context:
space:
mode:
authorJacob Moody <moody@posixcafe.org>2023-03-10 20:39:38 +0000
committerJacob Moody <moody@posixcafe.org>2023-03-10 20:39:38 +0000
commit82adfe54e258ed20d55fb6fd8505190b1e20aa0d (patch)
tree61c9b6464e85d957d4d88823940c93b4081ea9c2 /sys/src
parent52ac66512399a01cb3f9cbfb1e75e4ac860b4c79 (diff)
kbmap: fix multi column display for smaller windows (thanks mkf)
Diffstat (limited to 'sys/src')
-rw-r--r--sys/src/cmd/kbmap.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/src/cmd/kbmap.c b/sys/src/cmd/kbmap.c
index e26943318..977e4d7ce 100644
--- a/sys/src/cmd/kbmap.c
+++ b/sys/src/cmd/kbmap.c
@@ -99,14 +99,16 @@ drawmap(int i)
void
geometry(void)
{
- int i, rows;
+ int i, rows, cols;
Rectangle r;
rows = (Dy(screen->r)-2*MARGIN+PAD)/(font->height+PAD);
if(rows < 1)
rows = 1;
-
- r = Rect(0,0,(Dx(screen->r)-2*MARGIN), font->height);
+ cols = (nmap+rows-1)/rows;
+ if(cols < 1)
+ cols = 1;
+ r = Rect(0,0,(Dx(screen->r)-2*MARGIN+PAD)/cols-PAD, font->height);
for(i=0; i<nmap; i++)
map[i].r = rectaddpt(rectaddpt(r, Pt(MARGIN+(PAD+Dx(r))*(i/rows),
MARGIN+(PAD+Dy(r))*(i%rows))), screen->r.min);