URI: 
       now tiled windows can be resized/moved, their floating state will be toggled implicitely - dwm - dynamic window manager
  HTML git clone https://git.parazyd.org/dwm
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit d1ce3eac33a636e03a1f5a887897ae8046065ff7
   DIR parent 9449ea3e002990372383835b85ed18ceaf75e400
  HTML 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:
         M dwm.1                               |       4 ++--
         M dwm.c                               |      16 ++++++++++------
       
       2 files changed, 12 insertions(+), 8 deletions(-)
       ---
   DIR 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.
   DIR 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);
                        }
                }