applied Peter Hartlich's simplification patch of setmfact and his revival of MFACT, appliead Janness Hofmann's simplification of grabbuttons() -- thanks guys! c982bb13
anselm@anselm1 · 2008-04-02 22:10 2 file(s) · +24 −42
config.def.h +1 −1
20 20
21 21
/* geometries, s{x,y,w,h} and bh are already initualized here */
22 22
/*   func name  bx  by  bw  wx  wy  ww     wh  mx  my       mw  mh     tx  ty     tw  th  mox moy mow moh */
23 -
double mfact = 0.55;
23 +
#define MFACT			0.55	/* master width factor [0.1 .. 0.9] */
24 24
DEFGEOM(single,  0,  0, sw,  0, bh, sw, sh-bh, wx, wy, mfact*sw, wh, mx+mw, wy, ww-mw, wh,  wx, wy, ww, wh)
25 25
DEFGEOM(dual,    0,  0,1280, 0, bh, ww, wh-bh, wx, wy, 1280,800-bh,  1280,  0, ww-mw, sh,  mx, my, mw, mh)
26 26
dwm.c +23 −41
212 212
int screen, sx, sy, sw, sh;
213 213
int (*xerrorxlib)(Display *, XErrorEvent *);
214 214
int bx, by, bw, bh, blw, bgw, mx, my, mw, mh, mox, moy, mow, moh, tx, ty, tw, th, wx, wy, ww, wh;
215 +
double mfact;
215 216
unsigned int numlockmask = 0;
216 217
void (*handler[LASTEvent]) (XEvent *) = {
217 218
	[ButtonPress] = buttonpress,
805 806
806 807
void
807 808
grabbuttons(Client *c, Bool focused) {
808 -
	XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
809 -
810 -
	if(focused) {
811 -
		XGrabButton(dpy, Button1, MODKEY, c->win, False, BUTTONMASK,
812 -
				GrabModeAsync, GrabModeSync, None, None);
813 -
		XGrabButton(dpy, Button1, MODKEY|LockMask, c->win, False, BUTTONMASK,
814 -
				GrabModeAsync, GrabModeSync, None, None);
815 -
		XGrabButton(dpy, Button1, MODKEY|numlockmask, c->win, False, BUTTONMASK,
816 -
				GrabModeAsync, GrabModeSync, None, None);
817 -
		XGrabButton(dpy, Button1, MODKEY|numlockmask|LockMask, c->win, False, BUTTONMASK,
818 -
				GrabModeAsync, GrabModeSync, None, None);
809 +
	int i, j;
810 +
	unsigned int buttons[]   = { Button1, Button2, Button3 };
811 +
	unsigned int modifiers[] = { MODKEY, MODKEY|LockMask, MODKEY|numlockmask,
812 +
	                             MODKEY|numlockmask|LockMask} ;
819 813
820 -
		XGrabButton(dpy, Button2, MODKEY, c->win, False, BUTTONMASK,
821 -
				GrabModeAsync, GrabModeSync, None, None);
822 -
		XGrabButton(dpy, Button2, MODKEY|LockMask, c->win, False, BUTTONMASK,
823 -
				GrabModeAsync, GrabModeSync, None, None);
824 -
		XGrabButton(dpy, Button2, MODKEY|numlockmask, c->win, False, BUTTONMASK,
825 -
				GrabModeAsync, GrabModeSync, None, None);
826 -
		XGrabButton(dpy, Button2, MODKEY|numlockmask|LockMask, c->win, False, BUTTONMASK,
827 -
				GrabModeAsync, GrabModeSync, None, None);
828 -
829 -
		XGrabButton(dpy, Button3, MODKEY, c->win, False, BUTTONMASK,
830 -
				GrabModeAsync, GrabModeSync, None, None);
831 -
		XGrabButton(dpy, Button3, MODKEY|LockMask, c->win, False, BUTTONMASK,
832 -
				GrabModeAsync, GrabModeSync, None, None);
833 -
		XGrabButton(dpy, Button3, MODKEY|numlockmask, c->win, False, BUTTONMASK,
834 -
				GrabModeAsync, GrabModeSync, None, None);
835 -
		XGrabButton(dpy, Button3, MODKEY|numlockmask|LockMask, c->win, False, BUTTONMASK,
836 -
				GrabModeAsync, GrabModeSync, None, None);
837 -
	}
814 +
	XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
815 +
	if(focused)
816 +
		for(i = 0; i < LENGTH(buttons); i++)
817 +
			for(j = 0; j < LENGTH(modifiers); j++)
818 +
				XGrabButton(dpy, buttons[i], modifiers[j], c->win, False,
819 +
				            BUTTONMASK, GrabModeAsync, GrabModeSync, None, None);
838 820
	else
839 -
		XGrabButton(dpy, AnyButton, AnyModifier, c->win, False, BUTTONMASK,
840 -
				GrabModeAsync, GrabModeSync, None, None);
821 +
		XGrabButton(dpy, AnyButton, AnyModifier, c->win, False,
822 +
		            BUTTONMASK, GrabModeAsync, GrabModeSync, None, None);
841 823
}
842 824
843 825
void
1467 1449
1468 1450
void
1469 1451
setmfact(const char *arg) {
1470 -
	double delta;
1452 +
	double d;
1471 1453
1472 -
	if(!arg || lt->isfloating)
1454 +
	if(lt->isfloating)
1473 1455
		return;
1474 -
	delta = strtod(arg, NULL);
1475 -
	if(arg[0] == '-' || arg[0] == '+') {
1476 -
		if(mfact + delta < 0.1 || mfact + delta > 0.9)
1477 -
			return;
1478 -
		mfact += delta;
1479 -
	}
1456 +
	if(!arg)
1457 +
		mfact = MFACT;
1480 1458
	else {
1481 -
		if(delta < 0.1 || delta > 0.9)
1459 +
		d = strtod(arg, NULL);
1460 +
		if(arg[0] == '-' || arg[0] == '+')
1461 +
			d += mfact;
1462 +
		if(d < 0.1 || d > 0.9)
1482 1463
			return;
1483 -
		mfact = delta;
1464 +
		mfact = d;
1484 1465
	}
1485 1466
	setgeom(geom->symbol);
1486 1467
}
1501 1482
	sw = DisplayWidth(dpy, screen);
1502 1483
	sh = DisplayHeight(dpy, screen);
1503 1484
	bh = dc.font.height + 2;
1485 +
	mfact = MFACT;
1504 1486
	geom = &geoms[0];
1505 1487
	geom->apply();
1506 1488