diff options
author | Ori Bernstein <ori@eigenstate.org> | 2020-09-22 11:42:15 -0700 |
---|---|---|
committer | Ori Bernstein <ori@eigenstate.org> | 2020-09-22 11:42:15 -0700 |
commit | 313aebb96478c37be8f39754875c02dcb3f896cc (patch) | |
tree | 880c9ba449631562b136135e3e9a7e6169d178f6 /sys/src/cmd/acme/cols.c | |
parent | c1c904776c1536e854c5c1717a104353f885c3cd (diff) |
acme: import changes from plan9port (thanks jxy)
Import the following improvements and bugfixes from plan9port:
4650064a acme: scale window bodies on resize, not including tag space
d28913a9 acme: save/restore multiline tags in Dump/Load
d2df5d6c acme: fix crash in X |cat with multiple windows
3d6e5cb5 acme: preserve window position and selection during Get
Diffstat (limited to 'sys/src/cmd/acme/cols.c')
-rw-r--r-- | sys/src/cmd/acme/cols.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/src/cmd/acme/cols.c b/sys/src/cmd/acme/cols.c index 6beb2edb0..7ac1e1500 100644 --- a/sys/src/cmd/acme/cols.c +++ b/sys/src/cmd/acme/cols.c @@ -186,7 +186,7 @@ colmousebut(Column *c) void colresize(Column *c, Rectangle r) { - int i; + int i, old, new; Rectangle r1, r2; Window *w; @@ -199,6 +199,8 @@ colresize(Column *c, Rectangle r) r1.max.y += Border; draw(screen, r1, display->black, nil, ZP); r1.max.y = r.max.y; + new = Dy(r) - c->nw*(Border + font->height); + old = Dy(c->r) - c->nw*(Border + font->height); for(i=0; i<c->nw; i++){ w = c->w[i]; w->maxlines = 0; @@ -206,8 +208,8 @@ colresize(Column *c, Rectangle r) r1.max.y = r.max.y; else { r1.max.y = r1.min.y; - if(Dy(c->r) != 0) - r1.max.y += (Dy(w->r)+Border)*Dy(r)/Dy(c->r); + if(new > 0 && old > 0 && Dy(w->r) > Border+font->height) + r1.max.y += (Dy(w->r)-Border-font->height)*new/old + Border + font->height; } r2 = r1; r2.max.y = r2.min.y+Border; |