applied Peter Hartlich's simplification patch of setmfact and his revival of MFACT, appliead Janness Hofmann's simplification of grabbuttons() -- thanks guys!
c982bb13
2 file(s) · +24 −42
| 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 |
| 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 | ||