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:
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;