Permalink
Browse files

Merge.

  • Loading branch information...
2 parents f893e74 + 639715a commit 37c71b8284adef795efd58a798a77028bd1ceb0b Kris Maglione committed Sep 17, 2011
Showing with 47 additions and 30 deletions.
  1. +10 −3 cmd/wmii/float.c
  2. +33 −23 cmd/wmii/mouse.c
  3. +4 −4 lib/libstuff/geom/quadrant.c
View
@@ -74,7 +74,8 @@ float_arrange(Area *a) {
break;
case Colstack:
for(f=a->frame; f; f=f->anext)
- f->collapsed = (f != a->sel);
+ f->collapsed = !(f->client->w.ewmh.type & (TypeDock|TypeMenu|TypeToolbar))
+ && (f != a->sel);
break;
default:
die("not reached");
@@ -162,12 +163,14 @@ float_placeframe(Frame *f) {
Vector_rect *vp;
Rectangle r;
Point dim, p;
+ Area *a, *sel;
Client *c;
Frame *ff;
- Area *a, *sel;
+ View *v;
long area, l;
int i, s;
+ v = f->view;
a = f->area;
c = f->client;
@@ -212,7 +215,11 @@ float_placeframe(Frame *f) {
s = sel->screen;
}
- r = s == -1 ? a->r : screens[s]->r;
+ if (s == -1)
+ r = a->r;
+ else
+ r = v->r[s];
+
vp = unique_rects(&vec, r);
area = LONG_MAX;
View
@@ -223,7 +223,7 @@ readmotion(Point *p) {
static void
mouse_resizecolframe(Frame *f, Align align) {
- Window *cwin, *hwin;
+ Window *cwin, *hwin = nil;
Divide *d;
View *v;
Area *a;
@@ -245,7 +245,7 @@ mouse_resizecolframe(Frame *f, Align align) {
d = d->next;
}
- if(align&East)
+ if(align & East)
d = d->next;
min.x = column_minwidth();
@@ -263,72 +263,82 @@ mouse_resizecolframe(Frame *f, Align align) {
r.rmax.xy = r.rmin.xy plus 1; \
})
+ r = f->r;
if(align & North)
frob(f->aprev, f, aprev, min, max, +, -, y, false);
- else
+ else if(align & South)
frob(f->anext, f, anext, max, min, -, +, y, false);
if(align & West)
frob(a->prev, a, prev, min, max, +, -, x, true);
- else
+ else if(align & East)
frob(a->next, a, next, max, min, -, +, x, true);
#undef frob
cwin = constraintwin(r);
r = f->r;
- if(align&North)
+ if(align & North)
r.min.y--;
- else
+ else if(align & South)
r.min.y = r.max.y - 1;
r.max.y = r.min.y + 2;
- hwin = gethsep(r);
+ if(align & (North|South))
+ hwin = gethsep(r);
if(!grabpointer(&scr.root, cwin, cursor[CurSizing], MouseMask))
goto done;
- pt.x = ((align&West) ? f->r.min.x : f->r.max.x);
- pt.y = ((align&North) ? f->r.min.y : f->r.max.y);
+ pt.x = (align & West ? f->r.min.x : f->r.max.x);
+ pt.y = (align & North ? f->r.min.y : f->r.max.y);
warppointer(pt);
while(readmotion(&pt)) {
- if(align&West)
+ if(align & West)
r.min.x = pt.x;
- else
+ else if(align & East)
r.max.x = pt.x;
- r.min.y = ((align&South) ? pt.y : pt.y-1);
+
+ if(align & South)
+ r.min.y = pt.y;
+ else if(align & North)
+ r.min.y = pt.y - 1;
r.max.y = r.min.y+2;
- div_set(d, pt.x);
- reshapewin(hwin, r);
+ if(align & (East|West))
+ div_set(d, pt.x);
+ if(hwin)
+ reshapewin(hwin, r);
}
r = f->r;
- if(align&West)
+ if(align & West)
r.min.x = pt.x;
- else
+ else if(align & East)
r.max.x = pt.x;
- if(align&North)
+ if(align & North)
r.min.y = pt.y;
- else
+ else if(align & South)
r.max.y = pt.y;
column_resizeframe(f, r);
/* XXX: Magic number... */
- if(align&West)
+ if(align & West)
pt.x = f->r.min.x + 4;
- else
+ else if(align & East)
pt.x = f->r.max.x - 4;
- if(align&North)
+
+ if(align & North)
pt.y = f->r.min.y + 4;
- else
+ else if(align & South)
pt.y = f->r.max.y - 4;
warppointer(pt);
done:
ungrabpointer();
destroyconstraintwin(cwin);
- destroywindow(hwin);
+ if (hwin)
+ destroywindow(hwin);
}
void
@@ -8,10 +8,10 @@ quadrant(Rectangle r, Point pt) {
Align ret;
pt = subpt(pt, r.min);
- ret = East * (pt.x >= Dx(r) * .5)
- | West * (pt.x < Dx(r) * .5)
- | South * (pt.y >= Dy(r) * .5)
- | North * (pt.y < Dy(r) * .5);
+ ret = East * (pt.x >= Dx(r) * .7)
+ | West * (pt.x <= Dx(r) * .3)
+ | South * (pt.y >= Dy(r) * .7)
+ | North * (pt.y <= Dy(r) * .3);
return ret;
}

0 comments on commit 37c71b8

Please sign in to comment.