commit 0536494c9d442d34840ab239aa14b56e55a80dd5
parent 660aeb755ae5110bf2696eb8e4b5a53425ccf4bf
Author: sqweek <sqweek@gmail.com>
Date: Sat, 22 Sep 2007 21:14:59 +0800
Fixed column resizals when dragging the left edge of a client.
Diffstat:
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/cmd/wmii/column.c b/cmd/wmii/column.c
@@ -425,15 +425,17 @@ resize_colframe(Frame *f, Rectangle *r) {
Area *a, *al, *ar;
View *v;
uint minw;
- int dx, dw, maxx;
+ int dx, dw;
a = f->area;
v = a->view;
- maxx = r->max.x;
minw = Dx(screen->r) / NCOL;
- al = a->prev;
+ if(a->prev && !a->prev->floating)
+ al = a->prev;
+ else
+ al = nil;
ar = a->next;
if(al)
@@ -441,28 +443,26 @@ resize_colframe(Frame *f, Rectangle *r) {
else
r->min.x = max(r->min.x, 0);
- if(ar) {
- if(maxx >= ar->r.max.x - minw)
- maxx = ar->r.max.x - minw;
- }
+ if(ar)
+ r->max.x = min(r->max.x, ar->r.max.x - minw);
else
- if(maxx > screen->r.max.x)
- maxx = screen->r.max.x;
+ r->max.x = min(r->max.x, screen->r.max.x);
dx = a->r.min.x - r->min.x;
- dw = maxx - a->r.max.x;
+ dw = r->max.x - a->r.max.x;
if(al) {
al->r.max.x -= dx;
arrange_column(al, False);
}
if(ar) {
- ar->r.max.x -= dw;
+ ar->r.min.x += dw;
arrange_column(ar, False);
}
resize_colframeh(f, r);
- a->r.max.x = maxx;
+ a->r.min.x = r->min.x;
+ a->r.max.x = r->max.x;
arrange_view(a->view);
focus_view(screen, v);