dwm-dragmfact-6.2.diff - sites - public wiki contents of suckless.org | |
git clone git://git.suckless.org/sites | |
Log | |
Files | |
Refs | |
--- | |
dwm-dragmfact-6.2.diff (2421B) | |
--- | |
1 From 17df87822b379ce47d0aba3c36c5ef0adf4a7c3e Mon Sep 17 00:00:00 2001 | |
2 From: Miles Alan <[email protected]> | |
3 Date: Sun, 8 Dec 2019 18:15:13 -0600 | |
4 Subject: [PATCH] Mod + Right click / drag in tiling mode to resize mfact. | |
5 Works with multiple monitors. | |
6 | |
7 --- | |
8 dwm.c | 32 +++++++++++++++++++++++--------- | |
9 1 file changed, 23 insertions(+), 9 deletions(-) | |
10 | |
11 diff --git a/dwm.c b/dwm.c | |
12 index c15f679..e273803 100644 | |
13 --- a/dwm.c | |
14 +++ b/dwm.c | |
15 @@ -1911,7 +1911,16 @@ resizemouse(const Arg *arg) | |
16 if (XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, Gr… | |
17 None, cursor[CurResize]->cursor, CurrentTime) != GrabSu… | |
18 return; | |
19 - XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c… | |
20 + | |
21 + if (c->isfloating || NULL == c->mon->lt[c->mon->sellt]->arrange… | |
22 + XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->b… | |
23 + } else { | |
24 + XWarpPointer(dpy, None, root, 0, 0, 0, 0, | |
25 + selmon->mx + (selmon->ww * selmon->mfact), | |
26 + selmon->my + (selmon->wh / 2) | |
27 + ); | |
28 + } | |
29 + | |
30 do { | |
31 XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedi… | |
32 switch(ev.type) { | |
33 @@ -1927,19 +1936,24 @@ resizemouse(const Arg *arg) | |
34 | |
35 nw = MAX(ev.xmotion.x - ocx - 2 * c->bw + 1, 1); | |
36 nh = MAX(ev.xmotion.y - ocy - 2 * c->bw + 1, 1); | |
37 - if (c->mon->wx + nw >= selmon->wx && c->mon->wx… | |
38 - && c->mon->wy + nh >= selmon->wy && c->mon->wy … | |
39 - { | |
40 - if (!c->isfloating && selmon->lt[selmon… | |
41 - && (abs(nw - c->w) > snap || abs(nh - c… | |
42 - togglefloating(NULL); | |
43 - } | |
44 + | |
45 if (!selmon->lt[selmon->sellt]->arrange || c->i… | |
46 resize(c, c->x, c->y, nw, nh, 1); | |
47 break; | |
48 } | |
49 } while (ev.type != ButtonRelease); | |
50 - XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c… | |
51 + | |
52 + if (c->isfloating || NULL == c->mon->lt[c->mon->sellt]->arrange… | |
53 + XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->b… | |
54 + } else { | |
55 + selmon->mfact = (double) (ev.xmotion.x_root - selmon->m… | |
56 + arrange(selmon); | |
57 + XWarpPointer(dpy, None, root, 0, 0, 0, 0, | |
58 + selmon->mx + (selmon->ww * selmon->mfact), | |
59 + selmon->my + (selmon->wh / 2) | |
60 + ); | |
61 + } | |
62 + | |
63 XUngrabPointer(dpy, CurrentTime); | |
64 while (XCheckMaskEvent(dpy, EnterWindowMask, &ev)); | |
65 if ((m = recttomon(c->x, c->y, c->w, c->h)) != selmon) { | |
66 -- | |
67 2.23.0 | |
68 |