changeset: 2238:3c06b49f84d1
user: Kris Maglione <jg_AT_suckless.org>
date: Sat Jan 19 22:21:47 2008 -0500
summary: Fixed most of the brokenness of managed grabbox moves.
diff -r 6fd2e21d7406 -r 3c06b49f84d1 cmd/wmii/area.c
--- a/cmd/wmii/area.c Sat Jan 19 20:29:58 2008 -0500
+++ b/cmd/wmii/area.c Sat Jan 19 22:21:47 2008 -0500
@@ -198,24 +198,14 @@ area_attach(Area *a, Frame *f) {
void
area_detach(Frame *f) {
- Frame *pr;
Area *a;
a = f->area;
- pr = f->aprev;
if(a->floating)
float_detach(f);
else
column_detach(f);
-
- f->area = nil;
- if(a->sel == f) {
- if(!pr)
- pr = a->frame;
- a->sel = nil;
- area_setsel(a, pr);
- }
}
void
diff -r 6fd2e21d7406 -r 3c06b49f84d1 cmd/wmii/bar.c
--- a/cmd/wmii/bar.c Sat Jan 19 20:29:58 2008 -0500
+++ b/cmd/wmii/bar.c Sat Jan 19 22:21:47 2008 -0500
@@ -149,9 +149,9 @@ bar_draw(WMScreen *s) {
fill(screen->ibuf, r, def.normcolor.bg);
for(nb = 0; nb < nelem(s->bar); nb++)
for(b = s->bar[nb]; b; b=b->next) {
- align = CENTER;
+ align = Center;
if(b == s->bar[BarRight])
- align = EAST;
+ align = East;
fill(screen->ibuf, b->r, b->col.bg);
drawstring(screen->ibuf, def.font, b->r, align, b->text, b->col.fg);
border(screen->ibuf, b->r, 1, b->col.border);
diff -r 6fd2e21d7406 -r 3c06b49f84d1 cmd/wmii/client.c
--- a/cmd/wmii/client.c Sat Jan 19 20:29:58 2008 -0500
+++ b/cmd/wmii/client.c Sat Jan 19 22:21:47 2008 -0500
@@ -379,9 +379,9 @@ frame_hints(Frame *f, Rectangle r, Align
}
p = ZP;
- if((sticky&(EAST|WEST)) == EAST)
+ if((sticky&(East|West)) == East)
p.x = Dx(or) - Dx(r);
- if((sticky&(NORTH|SOUTH)) == SOUTH)
+ if((sticky&(North|South)) == South)
p.y = Dy(or) - Dy(r);
return rectaddpt(r, p);
diff -r 6fd2e21d7406 -r 3c06b49f84d1 cmd/wmii/column.c
--- a/cmd/wmii/column.c Sat Jan 19 20:29:58 2008 -0500
+++ b/cmd/wmii/column.c Sat Jan 19 22:21:47 2008 -0500
@@ -46,31 +46,37 @@ column_new(View *v, Area *pos, uint w) {
}
void
+column_insert(Area *a, Frame *f, Frame *pos) {
+
+ f->area = a;
+ f->client->floating = false;
+ f->column = area_idx(a);
+ frame_insert(f, pos);
+}
+
+void
column_attach(Area *a, Frame *f) {
uint nframe;
Frame *ft;
-
- f->client->floating = false;
nframe = 0;
for(ft=a->frame; ft; ft=ft->anext)
nframe++;
nframe = max(nframe, 1);
- f->column = area_idx(a);
f->r = a->r;
f->r.max.y = Dy(a->r) / nframe;
- frame_insert(f, a->sel);
+ column_insert(a, f, a->sel);
if(a->sel == nil)
area_setsel(a, f);
-
column_arrange(a, false);
}
void
-column_detach(Frame *f) {
+column_remove(Frame *f, bool arrange) {
Client *c;
+ Frame *pr;
Area *a;
View *v;
@@ -78,16 +84,34 @@ column_detach(Frame *f) {
v = a->view;
c = f->client;
+ pr = f->aprev;
+
frame_remove(f);
- if(a->frame)
- column_arrange(a, False);
+ f->area = nil;
+ if(a->sel == f) {
+ if(!pr)
+ pr = a->frame;
+ a->sel = nil;
+ area_setsel(a, pr);
+ }
+
+ if(a->frame) {
+ if(arrange)
+ column_arrange(a, False);
+ }
else {
if(v->area->next->next)
area_destroy(a);
else if(v->area->frame)
area_focus(v->area);
}
+}
+
+void
+column_detach(Frame *f) {
+
+ column_remove(f, true);
}
static void
diff -r 6fd2e21d7406 -r 3c06b49f84d1 cmd/wmii/float.c
--- a/cmd/wmii/float.c Sat Jan 19 20:29:58 2008 -0500
+++ b/cmd/wmii/float.c Sat Jan 19 22:21:47 2008 -0500
@@ -21,14 +21,24 @@ float_attach(Area *a, Frame *f) {
void
float_detach(Frame *f) {
+ Frame *pr;
Area *a, *sel;
View *v;
v = f->view;
a = f->area;
sel = view_findarea(v, v->selcol, false);
+ pr = f->aprev;
frame_remove(f);
+
+ f->area = nil;
+ if(a->sel == f) {
+ if(!pr)
+ pr = a->frame;
+ a->sel = nil;
+ area_setsel(a, pr);
+ }
if(v->oldsel)
area_focus(v->oldsel);
diff -r 6fd2e21d7406 -r 3c06b49f84d1 cmd/wmii/fns.h
--- a/cmd/wmii/fns.h Sat Jan 19 20:29:58 2008 -0500
+++ b/cmd/wmii/fns.h Sat Jan 19 22:21:47 2008 -0500
@@ -64,7 +64,9 @@ void column_arrange(Area*, bool dirty);
void column_arrange(Area*, bool dirty);
void column_attach(Area*, Frame*);
void column_detach(Frame*);
+void column_insert(Area*, Frame*, Frame*);
Area* column_new(View*, Area *, uint);
+void column_remove(Frame*, bool);
void column_resize(Area*, int);
void column_resizeframe(Frame*, Rectangle*);
void div_draw(Divide*);
diff -r 6fd2e21d7406 -r 3c06b49f84d1 cmd/wmii/frame.c
--- a/cmd/wmii/frame.c Sat Jan 19 20:29:58 2008 -0500
+++ b/cmd/wmii/frame.c Sat Jan 19 22:21:47 2008 -0500
@@ -139,13 +139,13 @@ bdown_event(Window *w, XButtonEvent *e)
if((e->state & def.mod) == def.mod) {
switch(e->button) {
case Button1:
- mouse_resize(c, False, CENTER);
+ mouse_resize(c, false, Center);
focus(c, false);
frame_restack(f, nil);
focus(c, false); /* Blech */
break;
case Button3:
- mouse_resize(c, False, quadrant(f->r, Pt(e->x_root, e->y_root)));
+ mouse_resize(c, false, quadrant(f->r, Pt(e->x_root, e->y_root)));
frame_restack(f, nil);
focus(c, false);
break;
@@ -160,10 +160,10 @@ bdown_event(Window *w, XButtonEvent *e)
if(frame_restack(f, nil))
view_restack(f->view);
else if(rect_haspoint_p(Pt(e->x, e->y), f->grabbox))
- mouse_resize(c, True, CENTER);
+ mouse_resize(c, true, Center);
else if(f->area->floating)
if(!e->subwindow && !rect_haspoint_p(Pt(e->x, e->y), f->titlebar))
- mouse_resize(c, False, quadrant(f->r, Pt(e->x_root, e->y_root)));
+ mouse_resize(c, false, quadrant(f->r, Pt(e->x_root, e->y_root)));
if(f->client != selclient())
focus(c, false);
@@ -489,7 +489,7 @@ frame_draw(Frame *f) {
r.max.y = labelh(def.font);
if(f->client->floating)
r.max.x -= Dx(f->grabbox);
- w = drawstring(screen->ibuf, def.font, r, WEST,
+ w = drawstring(screen->ibuf, def.font, r, West,
f->client->name, col->fg);
if(f->area->floating) {
diff -r 6fd2e21d7406 -r 3c06b49f84d1 cmd/wmii/geom.c
--- a/cmd/wmii/geom.c Sat Jan 19 20:29:58 2008 -0500
+++ b/cmd/wmii/geom.c Sat Jan 19 22:21:47 2008 -0500
@@ -46,13 +46,13 @@ quadrant(Rectangle r, Point pt) {
ret = 0;
if(pt.x >= Dx(r) * .5)
- ret |= EAST;
+ ret |= East;
if(pt.x <= Dx(r) * .5)
- ret |= WEST;
+ ret |= West;
if(pt.y <= Dy(r) * .5)
- ret |= NORTH;
+ ret |= North;
if(pt.y >= Dy(r) * .5)
- ret |= SOUTH;
+ ret |= South;
return ret;
}
@@ -60,13 +60,13 @@ Cursor
Cursor
quad_cursor(Align align) {
switch(align) {
- case NEAST:
+ case NEast:
return cursor[CurNECorner];
- case NWEST:
+ case NWest:
return cursor[CurNWCorner];
- case SEAST:
+ case SEast:
return cursor[CurSECorner];
- case SWEST:
+ case SWest:
return cursor[CurSWCorner];
default:
return cursor[CurMove];
@@ -78,13 +78,13 @@ get_sticky(Rectangle src, Rectangle dst)
Align stickycorner = 0;
if(src.min.x != dst.min.x && src.max.x == dst.max.x)
- stickycorner |= EAST;
+ stickycorner |= East;
else
- stickycorner |= WEST;
+ stickycorner |= West;
if(src.min.y != dst.min.y && src.max.y == dst.max.y)
- stickycorner |= SOUTH;
+ stickycorner |= South;
else
- stickycorner |= NORTH;
+ stickycorner |= North;
return stickycorner;
}
diff -r 6fd2e21d7406 -r 3c06b49f84d1 cmd/wmii/main.c
--- a/cmd/wmii/main.c Sat Jan 19 20:29:58 2008 -0500
+++ b/cmd/wmii/main.c Sat Jan 19 22:21:47 2008 -0500
@@ -133,7 +133,8 @@ init_ns(void) {
if(getuid() != st.st_uid)
fatal("ns_path '%s' exists but is not owned by you", ns_path);
if(st.st_mode & 077)
- fatal("ns_path '%s' exists, but has group or world permissions", ns_path);
+ if(chmod(ns_path, st.st_mode & ~077))
+ fatal("ns_path '%s' exists, but has group or world permissions", ns_path);
}
static void
diff -r 6fd2e21d7406 -r 3c06b49f84d1 cmd/wmii/mouse.c
--- a/cmd/wmii/mouse.c Sat Jan 19 20:29:58 2008 -0500
+++ b/cmd/wmii/mouse.c Sat Jan 19 22:21:47 2008 -0500
@@ -5,6 +5,8 @@
#include <assert.h>
#include "fns.h"
+/* Here be dragons. */
+
enum {
ButtonMask =
ButtonPressMask | ButtonReleaseMask,
@@ -17,15 +19,16 @@ enum { OHoriz, OVert };
enum { OHoriz, OVert };
typedef struct Framewin Framewin;
struct Framewin {
- Window *w;
- Frame *f;
- Frame *fp;
- Rectangle fr;
- Area *ra;
- Rectangle gb;
- Point pt;
- int or;
- int n;
+ /* Todo... give these better names. */
+ Window* w;
+ Rectangle grabbox;
+ Rectangle fprev_r;
+ Frame* fprev;
+ Frame* f;
+ Area* ra;
+ Point pt;
+ int orientation;
+ int xy;
};
static Rectangle
@@ -34,13 +37,13 @@ framerect(Framewin *f) {
Point p;
r.min = ZP;
- if(f->or == OHoriz) {
- r.max.x = f->n;
- r.max.y = f->gb.max.y + f->gb.min.y;
+ if(f->orientation == OHoriz) {
+ r.max.x = f->xy;
+ r.max.y = f->grabbox.max.y + f->grabbox.min.y;
r = rectsubpt(r, Pt(0, Dy(r)/2));
}else {
- r.max.x = f->gb.max.x + f->gb.min.x;
- r.max.y = f->n;
+ r.max.x = f->grabbox.max.x + f->grabbox.min.x;
+ r.max.y = f->xy;
r = rectsubpt(r, Pt(Dx(r)/2, 0));
}
r = rectaddpt(r, f->pt);
@@ -54,14 +57,14 @@ framerect(Framewin *f) {
}
static void
-frameadjust(Framewin *f, Point pt, int or, int n) {
- f->or = or;
- f->n = n;
+frameadjust(Framewin *f, Point pt, int orientation, int xy) {
+ f->orientation = orientation;
+ f->xy = xy;
f->pt = pt;
}
static Framewin*
-framewin(Frame *f, Point pt, int or, int n) {
+framewin(Frame *f, Point pt, int orientation, int n) {
WinAttr wa;
Framewin *fw;
@@ -73,8 +76,8 @@ framewin(Frame *f, Point pt, int or, int
sethandler(fw->w, &handlers);
fw->f = f;
- fw->gb = f->grabbox;
- frameadjust(fw, pt, or, n);
+ fw->grabbox = f->grabbox;
+ frameadjust(fw, pt, orientation, n);
reshapewin(fw->w, framerect(fw));
mapwin(fw->w);
@@ -105,8 +108,8 @@ expose_event(Window *w, XExposeEvent *e)
r = rectsubpt(w->r, w->r.min);
fill(buf, r, c->bg);
border(buf, r, 1, c->border);
- border(buf, f->gb, 1, c->border);
- border(buf, insetrect(f->gb, -f->gb.min.x), 1, c->border);
+ border(buf, f->grabbox, 1, c->border);
+ border(buf, insetrect(f->grabbox, -f->grabbox.min.x), 1, c->border);
copyimage(w, r, buf, ZP);
}
@@ -117,8 +120,8 @@ static Handlers handlers = {
static int
_vsnap(Framewin *f, int y) {
- if(abs(f->n - y) < Dy(f->w->r)) {
- f->n = y;
+ if(abs(f->xy - y) < Dy(f->w->r)) {
+ f->xy = y;
return 1;
}
return 0;
@@ -144,38 +147,38 @@ vplace(Framewin *fw, Point pt) {
r = fw->w->r;
hr = Dy(r)/2;
- fw->n = pt.y;
+ fw->xy = pt.y;
for(f = a->frame; f->anext; f = f->anext)
if(pt.y < f->r.max.y)
break;
if(!f->collapsed) {
- fw->fp = f;
- fw->fr = fw->fp->r;
+ fw->fprev = f;
+ fw->fprev_r = f->r;
if(f == fw->f) {
- fw->fp = f->aprev;
- fw->fr.max = f->r.max;
+ fw->fprev = f->aprev;
+ fw->fprev_r.max = f->r.max;
if(_vsnap(fw, f->r.min.y+hr))
goto done;
}
if(_vsnap(fw, f->r.max.y - hr)) {
- fw->fr.min.y = f->r.max.y - labelh(def.font);
+ fw->fprev_r.min.y = f->r.max.y - labelh(def.font);
goto done;
}
if(_vsnap(fw, f->r.min.y+Dy(r)+hr)) {
- fw->fr.min.y = f->r.min.y + labelh(def.font);
+ fw->fprev_r.min.y = f->r.min.y + labelh(def.font);
goto done;
}
if(f->aprev == nil || f->aprev->collapsed)
_vsnap(fw, f->r.min.y);
else if(_vsnap(fw, f->r.min.y-hr))
- fw->fp = f->aprev;
- fw->fr.min.y = pt.y - hr;
- if(fw->fp && fw->fp->anext == fw->f)
- fw->fr.max = fw->f->r.max;
+ fw->fprev = f->aprev;
+ fw->fprev_r.min.y = pt.y - hr;
+ if(fw->fprev && fw->fprev->anext == fw->f)
+ fw->fprev_r.max = fw->f->r.max;
goto done;
}
@@ -191,7 +194,7 @@ vplace(Framewin *fw, Point pt) {
done:
pt.x = a->r.min.x;
- pt.y = fw->n;
+ pt.y = fw->xy;
frameadjust(fw, pt, OHoriz, Dx(a->r));
reshapewin(fw->w, framerect(fw));
}
@@ -231,7 +234,7 @@ do_managed_move(Client *c) {
XEvent ev;
Framewin *fw;
Window *cwin;
- Frame *f;
+ Frame *f, *fprev, *fnext;
Point pt, pt2;
int y;
@@ -245,7 +248,7 @@ do_managed_move(Client *c) {
fw = framewin(f, pt2, OHoriz, Dx(f->area->r));
r = screen->r;
- r.min.y += fw->gb.min.y + Dy(fw->gb)/2;
+ r.min.y += fw->grabbox.min.y + Dy(fw->grabbox)/2;
r.max.y = r.min.y + 1;
cwin = createwindow(&scr.root, r, 0, InputOnly, &wa, 0);
mapwin(cwin);
@@ -274,34 +277,39 @@ horiz:
switch(ev.xbutton.button) {
case 1:
/* TODO: Fix... Tangled, broken mess. */
- if((f->anext) && (!f->aprev || (fw->fp != f->aprev && fw->fp != f->aprev->aprev))) {
- f->anext->r.min.y = f->r.min.y;
- frame_resize(f->anext, f->anext->r);
+ fprev = f->aprev;
+ fnext = f->anext;
+ column_remove(f, false);
+ if(fnext
+ && (!fprev || (fw->fprev != fprev)
+ && (fw->fprev != fprev->aprev))) {
+ fnext->r.min.y = f->r.min.y;
+ frame_resize(fnext, fnext->r);
}
- else if(f->aprev) {
- if(fw->fp == f->aprev->aprev) {
- fw->fp = f->aprev->aprev;
- f->aprev->r = f->r;
+ else if(fprev) {
+ if(fw->fprev == fprev->aprev) {
+ fw->fprev = fprev->aprev;
+ fprev->r = f->r;
}else
- f->aprev->r.max.y = f->r.max.y;
+ fprev->r.max.y = f->r.max.y;
+ frame_resize(fprev, fprev->r);
+ }
+
+ column_insert(fw->ra, f, fw->fprev);
+
+ r = fw->fprev_r;
+ if(f->aprev) {
+ f->aprev->r.max.y = r.min.y;
frame_resize(f->aprev, f->aprev->r);
- }
-
- frame_remove(f);
- f->area = fw->ra;
- frame_insert(f, fw->fp);
-
- if(f->aprev) {
- f->aprev->r.max.y = fw->fr.min.y;
- frame_resize(f->aprev, f->aprev->r);
- }
+ }else
+ r.min.y = f->area->r.min.y;
+
+ if(f->anext)
+ r.max.y = f->anext->r.min.y;
else
- fw->fr.min.y = f->area->r.min.y;
- if(f->anext)
- fw->fr.max.y = f->anext->r.min.y;
- else
- fw->fr.max.y = f->area->r.max.y;
- frame_resize(f, fw->fr);
+ r.max.y = f->area->r.max.y;
+
+ frame_resize(f, fw->fprev_r);
view_arrange(f->view);
goto done;
@@ -341,6 +349,7 @@ vert:
if(fw->ra) {
fw->ra = column_new(f->view, fw->ra, 0);
area_moveto(fw->ra, f);
+ view_arrange(f->view); /* I hate this. */
}
goto done;
case 2:
@@ -384,19 +393,19 @@ mouse_resizecolframe(Frame *f, Align ali
Rectangle r;
Point pt, min;
- assert((align&(EAST|WEST)) != (EAST|WEST));
- assert((align&(NORTH|SOUTH)) != (NORTH|SOUTH));
+ assert((align&(East|West)) != (East|West));
+ assert((align&(North|South)) != (North|South));
v = screen->sel;
for(a = v->area->next, d = divs; a; a = a->next, d = d->next)
if(a == f->area) break;
- if(align&EAST)
+ if(align&East)
d = d->next;
min.x = Dx(v->r)/NCOL;
min.y = /*frame_delta_h() +*/ labelh(def.font);
- if(align&NORTH) {
+ if(align&North) {
if(f->aprev) {
r.min.y = f->aprev->r.min.y + min.y;
r.max.y = f->r.max.y - min.y;
@@ -413,7 +422,7 @@ mouse_resizecolframe(Frame *f, Align ali
r.min.y = r.max.y - 1;
}
}
- if(align&WEST) {
+ if(align&West) {
if(a->prev != v->area) {
r.min.x = a->prev->r.min.x + min.x;
r.max.x = a->r.max.x - min.x;
@@ -435,7 +444,7 @@ mouse_resizecolframe(Frame *f, Align ali
mapwin(cwin);
r = f->r;
- if(align&NORTH)
+ if(align&North)
r.min.y--;
else
r.min.y = r.max.y - 1;
@@ -446,8 +455,8 @@ mouse_resizecolframe(Frame *f, Align ali
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);
for(;;) {
@@ -462,11 +471,11 @@ mouse_resizecolframe(Frame *f, Align ali
pt.x = ev.xmotion.x_root;
pt.y = ev.xmotion.y_root;
- if(align&WEST)
+ if(align&West)
r.min.x = pt.x;
else
r.max.x = pt.x;
- r.min.y = ((align&SOUTH) ? pt.y : pt.y-1);
+ r.min.y = ((align&South) ? pt.y : pt.y-1);
r.max.y = r.min.y+2;
div_set(d, pt.x);
@@ -474,22 +483,22 @@ mouse_resizecolframe(Frame *f, Align ali
break;
case ButtonRelease:
r = f->r;
- if(align&WEST)
+ if(align&West)
r.min.x = pt.x;
else
r.max.x = pt.x;
- if(align&NORTH)
+ if(align&North)
r.min.y = pt.y;
else
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
pt.x = f->r.max.x - 4;
- if(align&NORTH)
+ if(align&North)
pt.y = f->r.min.y + 4;
else
pt.y = f->r.max.y - 4;
@@ -564,26 +573,26 @@ rect_morph(Rectangle *r, Point d, Align
rect_morph(Rectangle *r, Point d, Align *mask) {
int n;
- if(*mask & NORTH)
+ if(*mask & North)
r->min.y += d.y;
- if(*mask & WEST)
+ if(*mask & West)
r->min.x += d.x;
- if(*mask & SOUTH)
+ if(*mask & South)
r->max.y += d.y;
- if(*mask & EAST)
+ if(*mask & East)
r->max.x += d.x;
if(r->min.x > r->max.x) {
n = r->min.x;
r->min.x = r->max.x;
r->max.x = n;
- *mask ^= EAST|WEST;
+ *mask ^= East|West;
}
if(r->min.y > r->max.y) {
n = r->min.y;
r->min.y = r->max.y;
r->max.y = n;
- *mask ^= NORTH|SOUTH;
+ *mask ^= North|South;
}
}
@@ -639,24 +648,24 @@ snap_rect(Rectangle *rects, int num, Rec
d.x = snap+1;
d.y = snap+1;
- if(*mask&NORTH)
+ if(*mask&North)
d.y = snap_hline(rects, num, d.y, r, r->min.y);
- if(*mask&SOUTH)
+ if(*mask&South)
d.y = snap_hline(rects, num, d.y, r, r->max.y);
- if(*mask&EAST)
+ if(*mask&East)
d.x = snap_vline(rects, num, d.x, r, r->max.x);
- if(*mask&WEST)
+ if(*mask&West)
d.x = snap_vline(rects, num, d.x, r, r->min.x);
- ret = CENTER;
+ ret = Center;
if(abs(d.x) <= snap)
- ret ^= EAST|WEST;
+ ret ^= East|West;
else
d.x = 0;
if(abs(d.y) <= snap)
- ret ^= NORTH|SOUTH;
+ ret ^= North|South;
else
d.y = 0;
@@ -666,7 +675,7 @@ snap_rect(Rectangle *rects, int num, Rec
/* Grumble... Messy... TODO: Rewrite. */
void
-mouse_resize(Client *c, bool opaque, Align align) {
+mouse_resize(Client *c, bool grabbox, Align align) {
XEvent ev;
Rectangle *rects;
Rectangle frect, origin;
@@ -679,8 +688,11 @@ mouse_resize(Client *c, bool opaque, Ali
f = c->sel;
+ if(f->client->fullscreen)
+ return;
+
if(!f->area->floating) {
- if(align==CENTER)
+ if(align==Center)
do_managed_move(c);
else
mouse_resizecolframe(f, align);
@@ -692,7 +704,7 @@ mouse_resize(Client *c, bool opaque, Ali
rects = view_rects(f->area->view, &num, c->frame);
cur = quad_cursor(align);
- if((align==CENTER) && !opaque)
+ if((align==Center) && !grabbox)
cur = cursor[CurSizing];
pt = querypointer(c->framewin);
@@ -707,21 +719,17 @@ mouse_resize(Client *c, bool opaque, Ali
hr = subpt(frect.max, frect.min);
hr = divpt(hr, Pt(2, 2));
- if(align != CENTER) {
+ if(align != Center) {
d = hr;
- if(align&NORTH) d.y -= hr.y;
- if(align&SOUTH) d.y += hr.y;
- if(align&EAST) d.x += hr.x;
- if(align&WEST) d.x -= hr.x;
+ if(align&North) d.y -= hr.y;
+ if(align&South) d.y += hr.y;
+ if(align&East) d.x += hr.x;
+ if(align&West) d.x -= hr.x;
pt = addpt(d, f->r.min);
warppointer(pt);
}
- else if(f->client->fullscreen) {
- ungrabpointer();
- return;
- }
- else if(!opaque) {
+ else if(!grabbox) {
hrx = (double)(Dx(screen->r) + Dx(frect) - 2 * labelh(def.font))
/ Dx(screen->r);
hry = (double)(Dy(screen->r) + Dy(frect) - 3 * labelh(def.font))
@@ -748,7 +756,7 @@ mouse_resize(Client *c, bool opaque, Ali
d.x = ev.xmotion.x_root;
d.y = ev.xmotion.y_root;
- if(align == CENTER && !opaque) {
+ if(align == Center && !grabbox) {
SET(hrx);
SET(hry);
d.x = (d.x * hrx) - pt.x;
@@ -772,7 +780,7 @@ mouse_resize(Client *c, bool opaque, Ali
case ButtonRelease:
client_resize(c, frect);
- if(!opaque) {
+ if(!grabbox) {
pt = translate(c->framewin, &scr.root,
Pt(Dx(frect)*rx, Dy(frect)*ry));
if(pt.y > screen->brect.min.y)
diff -r 6fd2e21d7406 -r 3c06b49f84d1 cmd/wmii/x11.c
--- a/cmd/wmii/x11.c Sat Jan 19 20:29:58 2008 -0500
+++ b/cmd/wmii/x11.c Sat Jan 19 22:21:47 2008 -0500
@@ -454,7 +454,7 @@ drawstring(Image *dst, Font *font,
len += min(shortened, 3);
switch (align) {
- case EAST:
+ case East:
x = r.max.x - (w + (font->height / 2));
break;
default:
diff -r 6fd2e21d7406 -r 3c06b49f84d1 include/x11.h
--- a/include/x11.h Sat Jan 19 20:29:58 2008 -0500
+++ b/include/x11.h Sat Jan 19 22:21:47 2008 -0500
@@ -16,15 +16,15 @@
#undef Screen
enum Align {
- NORTH = 0x01,
- EAST = 0x02,
- SOUTH = 0x04,
- WEST = 0x08,
- NEAST = NORTH | EAST,
- NWEST = NORTH | WEST,
- SEAST = SOUTH | EAST,
- SWEST = SOUTH | WEST,
- CENTER = NEAST | SWEST,
+ North = 0x01,
+ East = 0x02,
+ South = 0x04,
+ West = 0x08,
+ NEast = North | East,
+ NWest = North | West,
+ SEast = South | East,
+ SWest = South | West,
+ Center = NEast | SWest,
};
typedef enum Align Align;
Received on Mon Jan 21 2008 - 00:31:14 UTC
This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 15:59:01 UTC