wmii

git clone git://oldgit.suckless.org/wmii/
Log | Files | Refs | README | LICENSE

commit 5ce54fd1b5612bc0b10ac4c3c6a27be66d788933
parent ebd63a2aa7dcd1f8eff2ff1caac2998c61572882
Author: Kris Maglione <jg@suckless.org>
Date:   Fri,  2 Oct 2009 16:21:12 -0400

Fix returning from fullscreen. Closes issue #104. Closes issue #22.

Diffstat:
cmd/wmii/column.c | 22+++++++++-------------
1 file changed, 9 insertions(+), 13 deletions(-)

diff --git a/cmd/wmii/column.c b/cmd/wmii/column.c @@ -295,23 +295,14 @@ column_attachrect(Area *a, Frame *f, Rectangle r) { pos = nil; for(fp=a->frame; fp; pos=fp, fp=fp->anext) { - if(r.max.y < fp->r.min.y) + if(r.max.y < fp->r.min.y || r.min.y > fp->r.max.y) continue; before = fp->r.min.y - r.min.y; - after = r.max.y - fp->r.max.y; - if(abs(before) <= abs(after)) - break; - } - if(Dy(a->r) > Dy(r)) { - /* Kludge. */ - before = a->r.max.y; - a->r.max.y -= Dy(r); - column_scale(a); - a->r.max.y = before; + after = -fp->r.max.y + r.max.y; } column_insert(a, f, pos); - column_scale(a); column_resizeframe_h(f, r); + column_scale(a); } void @@ -674,7 +665,7 @@ column_resizeframe_h(Frame *f, Rectangle r) { if(fp) r.min.y = max(r.min.y, fp->colr.min.y + minh); - else /* XXX. */ + else r.min.y = max(r.min.y, a->r.min.y); if(fn) @@ -686,10 +677,15 @@ column_resizeframe_h(Frame *f, Rectangle r) { fp->colr.max.y = r.min.y; frame_resize(fp, fp->colr); } + else + r.min.y = min(r.min.y, r.max.y - minh); + if(fn) { fn->colr.min.y = r.max.y; frame_resize(fn, fn->colr); } + else + r.max.y = max(r.max.y, r.min.y + minh); f->colr = r; frame_resize(f, r);