dwm

my fork of dwm
Index Commits Files Refs README LICENSE
commit d1ce3eac33a636e03a1f5a887897ae8046065ff7
parent 9449ea3e002990372383835b85ed18ceaf75e400
Author: Anselm R. Garbe <garbeam@gmail.com>
Date:   Sun, 16 Sep 2007 13:27:33 +0200

now tiled windows can be resized/moved, their floating state will be toggled implicitely
Diffstat:
Mdwm.1 | 4++--
Mdwm.c | 16++++++++++------
2 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/dwm.1 b/dwm.1
@@ -117,13 +117,13 @@ Quit dwm.
 .SS Mouse commands
 .TP
 .B Mod1\-Button1
-Move current window while dragging (floating layout only).
+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).
 .TP
 .B Mod1\-Button3
-Resize current window while dragging (floating layout only).
+Resize current window while dragging. Tiled windows will be toggled to the floating state.
 .SH CUSTOMIZATION
 dwm is customized by creating a custom config.h and (re)compiling the source
 code. This keeps it fast, secure and simple.
diff --git a/dwm.c b/dwm.c
@@ -335,16 +335,20 @@ buttonpress(XEvent *e) {
         focus(c);
         if(CLEANMASK(ev->state) != MODKEY)
             return;
-        if(ev->button == Button1 && (isarrange(floating) || c->isfloating)) {
-            restack();
+        if(ev->button == Button1) {
+            if(!isarrange(floating) && !c->isfloating)
+                togglefloating(NULL);
+            else
+                restack();
             movemouse(c);
         }
         else if(ev->button == Button2)
             zoom(NULL);
-        else if(ev->button == Button3
-        && (isarrange(floating) || c->isfloating) && !c->isfixed)
-        {
-            restack();
+        else if(ev->button == Button3 && !c->isfixed) {
+            if(!isarrange(floating) && !c->isfloating)
+                togglefloating(NULL);
+            else
+                restack();
             resizemouse(c);
         }
     }