summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dwm.14
-rw-r--r--dwm.c16
2 files changed, 12 insertions, 8 deletions
diff --git a/dwm.1 b/dwm.1
index cf197f5f..d82c3875 100644
--- 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
index 9932974a..164b5efd 100644
--- 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);
}
}