| dwm-maximize_vert_horz-20160731-56a31dc.diff - sites - public wiki contents of … | |
| git clone git://git.suckless.org/sites | |
| Log | |
| Files | |
| Refs | |
| --- | |
| dwm-maximize_vert_horz-20160731-56a31dc.diff (2419B) | |
| --- | |
| 1 Author: Jan Christoph Ebersbach <[email protected]> | |
| 2 URL: http://dwm.suckless.org/patches/maximize | |
| 3 These patches provide helper functions for moving and resizing floating … | |
| 4 using keybindings. | |
| 5 | |
| 6 Index: dwm/dwm.c | |
| 7 =================================================================== | |
| 8 --- dwm/dwm.c.orig | |
| 9 +++ dwm/dwm.c | |
| 10 @@ -93,7 +93,7 @@ struct Client { | |
| 11 int basew, baseh, incw, inch, maxw, maxh, minw, minh; | |
| 12 int bw, oldbw; | |
| 13 unsigned int tags; | |
| 14 - int isfixed, isfloating, isurgent, neverfocus, oldstate, isfull… | |
| 15 + int ismax, wasfloating, isfixed, isfloating, isurgent, neverfoc… | |
| 16 Client *next; | |
| 17 Client *snext; | |
| 18 Monitor *mon; | |
| 19 @@ -1075,6 +1075,8 @@ manage(Window w, XWindowAttributes *wa) | |
| 20 updatewmhints(c); | |
| 21 XSelectInput(dpy, w, EnterWindowMask|FocusChangeMask|PropertyCh… | |
| 22 grabbuttons(c, 0); | |
| 23 + c->wasfloating = 0; | |
| 24 + c->ismax = 0; | |
| 25 if (!c->isfloating) | |
| 26 c->isfloating = c->oldstate = trans != None || c->isfix… | |
| 27 if (c->isfloating) | |
| 28 Index: dwm/maximize.c | |
| 29 =================================================================== | |
| 30 --- /dev/null | |
| 31 +++ dwm/maximize.c | |
| 32 @@ -0,0 +1,45 @@ | |
| 33 +void | |
| 34 +maximize(int x, int y, int w, int h) { | |
| 35 + XEvent ev; | |
| 36 + | |
| 37 + if(!selmon->sel || selmon->sel->isfixed) | |
| 38 + return; | |
| 39 + XRaiseWindow(dpy, selmon->sel->win); | |
| 40 + if(!selmon->sel->ismax) { | |
| 41 + if(!selmon->lt[selmon->sellt]->arrange || selmon->sel->… | |
| 42 + selmon->sel->wasfloating = True; | |
| 43 + else { | |
| 44 + togglefloating(NULL); | |
| 45 + selmon->sel->wasfloating = False; | |
| 46 + } | |
| 47 + selmon->sel->oldx = selmon->sel->x; | |
| 48 + selmon->sel->oldy = selmon->sel->y; | |
| 49 + selmon->sel->oldw = selmon->sel->w; | |
| 50 + selmon->sel->oldh = selmon->sel->h; | |
| 51 + resize(selmon->sel, x, y, w, h, True); | |
| 52 + selmon->sel->ismax = True; | |
| 53 + } | |
| 54 + else { | |
| 55 + resize(selmon->sel, selmon->sel->oldx, selmon->sel->old… | |
| 56 + if(!selmon->sel->wasfloating) | |
| 57 + togglefloating(NULL); | |
| 58 + selmon->sel->ismax = False; | |
| 59 + } | |
| 60 + drawbar(selmon); | |
| 61 + while(XCheckMaskEvent(dpy, EnterWindowMask, &ev)); | |
| 62 +} | |
| 63 + | |
| 64 +void | |
| 65 +togglemaximize(const Arg *arg) { | |
| 66 + maximize(selmon->wx, selmon->wy, selmon->ww - 2 * borderpx, sel… | |
| 67 +} | |
| 68 + | |
| 69 +void | |
| 70 +toggleverticalmax(const Arg *arg) { | |
| 71 + maximize(selmon->sel->x, selmon->wy, selmon->sel->w, selmon->wh… | |
| 72 +} | |
| 73 + | |
| 74 +void | |
| 75 +togglehorizontalmax(const Arg *arg) { | |
| 76 + maximize(selmon->wx, selmon->sel->y, selmon->ww - 2 * borderpx,… | |
| 77 +} |