wmii

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

commit 9950100cc6c3e9df48172e745f32b7bb4d26df5a
parent 67512fa9e73b2cd9401904eed7373e67d5968be5
Author: Kris Maglione <kris@suckless.org>
Date:   Sat, 24 Oct 2009 03:49:10 -0400

More Xinerama float placement fixes. Closes issue #146.

Diffstat:
cmd/wmii/float.c | 11+++++------
cmd/wmii/frame.c | 1+
2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/cmd/wmii/float.c b/cmd/wmii/float.c @@ -210,9 +210,7 @@ float_placeframe(Frame *f) { s = sel->screen; } - r = a->r; - if (s > -1) - r = screens[s]->r; + r = s == -1 ? a->r : screens[s]->r; vp = unique_rects(&vec, r); area = LONG_MAX; @@ -233,12 +231,13 @@ float_placeframe(Frame *f) { if(area == LONG_MAX) { /* Cascade. */ + s = max(s, 0); ff = a->sel; if(ff) p = addpt(ff->r.min, Pt(Dy(ff->titlebar), Dy(ff->titlebar))); - if(p.x + Dx(f->r) > Dx(screen->r) || - p.y + Dy(f->r) > screen->brect.min.y) - p = ZP; + if(p.x + Dx(f->r) > screens[s]->r.max.x || + p.y + Dy(f->r) > screens[s]->r.max.y) + p = screens[s]->r.min; } f->floatr = rectsetorigin(f->r, p); diff --git a/cmd/wmii/frame.c b/cmd/wmii/frame.c @@ -35,6 +35,7 @@ frame_create(Client *c, View *v) { c->sel = f; } f->collapsed = false; + f->screen = -1; f->oldarea = -1; f->oldscreen = -1;