| 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 |