Преглед изворни кода

Mod1-Button2 on a floating but not-fixed client will make it tiled again

Anselm R. Garbe пре 18 година
родитељ
комит
b2f276b0f9
2 измењених фајлова са 7 додато и 3 уклоњено
  1. 1 1
      dwm.1
  2. 6 2
      dwm.c

+ 1 - 1
dwm.1

@@ -120,7 +120,7 @@ Quit dwm.
 Move current window while dragging. Tiled windows will be toggled to the floating state.
 Move current window while dragging. Tiled windows will be toggled to the floating state.
 .TP
 .TP
 .B Mod1\-Button2
 .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
 .TP
 .B Mod1\-Button3
 .B Mod1\-Button3
 Resize current window while dragging. Tiled windows will be toggled to the floating state.
 Resize current window while dragging. Tiled windows will be toggled to the floating state.

+ 6 - 2
dwm.c

@@ -342,8 +342,12 @@ buttonpress(XEvent *e) {
 				restack();
 				restack();
 			movemouse(c);
 			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) {
 		else if(ev->button == Button3 && !c->isfixed) {
 			if(!isarrange(floating) && !c->isfloating)
 			if(!isarrange(floating) && !c->isfloating)
 				togglefloating(NULL);
 				togglefloating(NULL);