Mod1-Button2 on a floating but not-fixed client will make it tiled again
authorAnselm R. Garbe <garbeam@gmail.com>
Sun, 16 Sep 2007 11:42:37 +0000 (13:42 +0200)
committerAnselm R. Garbe <garbeam@gmail.com>
Sun, 16 Sep 2007 11:42:37 +0000 (13:42 +0200)
dwm.1
dwm.c

diff --git a/dwm.1 b/dwm.1
index d82c387..5e42e28 100644 (file)
--- a/dwm.1
+++ b/dwm.1
@@ -120,7 +120,7 @@ Quit dwm.
 Move current window while dragging. Tiled windows will be toggled to the floating state.
 .TP
 .B Mod1\-Button2
-Zooms/cycles current window to/from master area (tiled layout only).
+Zooms/cycles current window to/from master area. If it is floating (but not fixed) it will be toggled to the tiled state instead.
 .TP
 .B Mod1\-Button3
 Resize current window while dragging. Tiled windows will be toggled to the floating state.
diff --git a/dwm.c b/dwm.c
index 164b5ef..0428ba1 100644 (file)
--- a/dwm.c
+++ b/dwm.c
@@ -342,8 +342,12 @@ buttonpress(XEvent *e) {
                                restack();
                        movemouse(c);
                }
-               else if(ev->button == Button2)
-                       zoom(NULL);
+               else if(ev->button == Button2) {
+                       if(isarrange(tile) && !c->isfixed && c->isfloating)
+                               togglefloating(NULL);
+                       else
+                               zoom(NULL);
+               }
                else if(ev->button == Button3 && !c->isfixed) {
                        if(!isarrange(floating) && !c->isfloating)
                                togglefloating(NULL);