wmii

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

commit bda87f5ea4e0edb6dc5cbf336cd34e3a8de9ec3f
parent dbebda0ef2f48e67df452812b0baa1c63ce21240
Author: Kris Maglione <jg@suckless.org>
Date:   Tue, 21 Oct 2008 19:17:16 -0400

Fix column dividers with Xinerama

Diffstat:
cmd/wmii/dat.h | 2++
cmd/wmii/div.c | 16++++++++++++----
cmd/wmii/mouse.c | 11++---------
3 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/cmd/wmii/dat.h b/cmd/wmii/dat.h @@ -193,6 +193,8 @@ struct Client { struct Divide { Divide* next; Window* w; + Area* left; + Area* right; bool mapped; int x; }; diff --git a/cmd/wmii/div.c b/cmd/wmii/div.c @@ -50,12 +50,14 @@ unmapdiv(Divide *d) { void div_set(Divide *d, int x) { Rectangle r; + int scrn; + + scrn = d->left ? d->left->screen : d->right->screen; d->x = x; r = rectaddpt(divimg->r, Pt(x - Dx(divimg->r)/2, 0)); - /* XXX: Multihead. */ - r.min.y = selview->screenr.min.y; - r.max.y = selview->screenr.max.y; + r.min.y = selview->r[scrn].min.y; + r.max.y = selview->r[scrn].max.y; reshapewin(d->w, r); mapdiv(d); @@ -117,7 +119,7 @@ update_imgs(void) { void div_update_all(void) { Divide **dp, *d; - Area *a; + Area *a, *ap; View *v; int s; @@ -125,14 +127,20 @@ div_update_all(void) { v = selview; dp = &divs; + ap = nil; foreach_column(v, s, a) { d = getdiv(dp); dp = &d->next; + d->left = ap; + d->right = a; div_set(d, a->r.min.x); + ap = a; if(!a->next) { d = getdiv(dp); dp = &d->next; + d->left = a; + d->right = nil; div_set(d, a->r.max.x); } } diff --git a/cmd/wmii/mouse.c b/cmd/wmii/mouse.c @@ -315,22 +315,15 @@ done: void mouse_resizecol(Divide *d) { Window *cwin; - Divide *dp; View *v; Area *a; Rectangle r; Point pt; - int minw, s; + int minw; v = selview; - dp = divs; - foreach_column(v, s, a) { - if(dp->next == d) - break; - dp = dp->next; - } - + a = d->left; /* Fix later */ if(a == nil || a->next == nil) return;