diff options
Diffstat (limited to 'dwm.c')
-rw-r--r-- | dwm.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/dwm.c b/dwm.c index 9932974..164b5ef 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); } } |