Просмотр исходного кода

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

Anselm R. Garbe 18 лет назад
Родитель
Сommit
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);