commit 21f6dcb806618d2b8eff8fbd77fabec752674d7d
parent a005c556b01c965c57dc13f75d6b9c2acdad2228
Author: Jan Christoph Ebersbach <jceb@e-jc.de>
Date: Sun, 9 Feb 2014 19:57:13 +0100
update maximize_vert_horz patch
Diffstat:
2 files changed, 79 insertions(+), 5 deletions(-)
diff --git a/dwm.suckless.org/patches/dwm-6.1-maximize_vert_horz.diff b/dwm.suckless.org/patches/dwm-6.1-maximize_vert_horz.diff
@@ -0,0 +1,77 @@
+Author: Jan Christoph Ebersbach <jceb@e-jc.de>
+URL: http://dwm.suckless.org/patches/historical/moveresize
+These patches provide helper functions for moving and resizing floating windows
+using keybindings.
+
+Index: dwm/dwm.c
+===================================================================
+--- dwm/dwm.c.orig 2014-02-09 15:24:12.552116979 +0100
++++ dwm/dwm.c 2014-02-09 15:24:12.548116979 +0100
+@@ -91,7 +91,7 @@
+ int basew, baseh, incw, inch, maxw, maxh, minw, minh;
+ int bw, oldbw;
+ unsigned int tags;
+- Bool isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen;
++ Bool ismax, wasfloating, isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen;
+ Client *next;
+ Client *snext;
+ Monitor *mon;
+@@ -1047,6 +1047,8 @@
+ updatewmhints(c);
+ XSelectInput(dpy, w, EnterWindowMask|FocusChangeMask|PropertyChangeMask|StructureNotifyMask);
+ grabbuttons(c, False);
++ c->wasfloating = False;
++ c->ismax = False;
+ if(!c->isfloating)
+ c->isfloating = c->oldstate = trans != None || c->isfixed;
+ if(c->isfloating)
+Index: dwm/maximize.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ dwm/maximize.c 2014-02-09 15:24:12.548116979 +0100
+@@ -0,0 +1,45 @@
++void
++maximize(int x, int y, int w, int h) {
++ XEvent ev;
++
++ if(!selmon->sel || selmon->sel->isfixed)
++ return;
++ XRaiseWindow(dpy, selmon->sel->win);
++ if(!selmon->sel->ismax) {
++ if(!selmon->lt[selmon->sellt]->arrange || selmon->sel->isfloating)
++ selmon->sel->wasfloating = True;
++ else {
++ togglefloating(NULL);
++ selmon->sel->wasfloating = False;
++ }
++ selmon->sel->oldx = selmon->sel->x;
++ selmon->sel->oldy = selmon->sel->y;
++ selmon->sel->oldw = selmon->sel->w;
++ selmon->sel->oldh = selmon->sel->h;
++ resize(selmon->sel, x, y, w, h, True);
++ selmon->sel->ismax = True;
++ }
++ else {
++ resize(selmon->sel, selmon->sel->oldx, selmon->sel->oldy, selmon->sel->oldw, selmon->sel->oldh, True);
++ if(!selmon->sel->wasfloating)
++ togglefloating(NULL);
++ selmon->sel->ismax = False;
++ }
++ drawbar(selmon);
++ while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
++}
++
++void
++togglemaximize(const Arg *arg) {
++ maximize(selmon->wx, selmon->wy, selmon->ww - 2 * borderpx, selmon->wh - 2 * borderpx);
++}
++
++void
++toggleverticalmax(const Arg *arg) {
++ maximize(selmon->sel->x, selmon->wy, selmon->sel->w, selmon->wh - 2 * borderpx);
++}
++
++void
++togglehorizontalmax(const Arg *arg) {
++ maximize(selmon->wx, selmon->sel->y, selmon->ww - 2 * borderpx, selmon->sel->h);
++}
diff --git a/dwm.suckless.org/patches/maximize.md b/dwm.suckless.org/patches/maximize.md
@@ -3,7 +3,6 @@ maximize
Description
-----------
-
These patch provide helper functions for maximizing, horizontally and
vertically, floating windows using keybindings.
@@ -19,11 +18,9 @@ Insert the bindings into the keys list. Here is an example:
Download
--------
-* [dwm-6.0-moveresize.diff][0]
-
-[0]: dwm-6.0-moveresize.diff
+* [dwm-6.1-maximize_vert_horz.diff](dwm-6.1-maximize_vert_horz.diff) (2532b) (20140209)
+* [dwm-6.0-maximize_vert_horz.diff](dwm-6.0-maximize_vert_horz.diff) (2013b) (20120406)
Author
------
-
* Jan Christoph Ebersbach - <jceb@e-jc.de>