diff src/window.c @ 30009:b97a870a7c63 v9.0.0342

patch 9.0.0342: ":wincmd =" equalizes in two directions Commit: https://github.com/vim/vim/commit/21c3a80a7fd6b7fc250ce5dc287963511f54b86f Author: Bram Moolenaar <Bram@vim.org> Date: Wed Aug 31 17:49:14 2022 +0100 patch 9.0.0342: ":wincmd =" equalizes in two directions Problem: ":wincmd =" equalizes in two directions. Solution: Make ":vertical wincmd =" equalize vertically only and ":horizontal wincmd =" equalize horizontally only.
author Bram Moolenaar <Bram@vim.org>
date Wed, 31 Aug 2022 19:00:04 +0200
parents bb0e525e1393
children 0211a930d873
line wrap: on
line diff
--- a/src/window.c
+++ b/src/window.c
@@ -434,12 +434,16 @@ newwindow:
 			| ((nchar == 'H' || nchar == 'K') ? WSP_TOP : WSP_BOT));
 		break;
 
-// make all windows the same height
+// make all windows the same width and/or height
     case '=':
+		{
+		    int mod = cmdmod.cmod_split & (WSP_VERT | WSP_HOR);
 #ifdef FEAT_GUI
-		need_mouse_correct = TRUE;
+		    need_mouse_correct = TRUE;
 #endif
-		win_equal(NULL, FALSE, 'b');
+		    win_equal(NULL, FALSE,
+			   mod == WSP_VERT ? 'v' : mod == WSP_HOR ? 'h' : 'b');
+		}
 		break;
 
 // increase current window height