changeset 12491:7ab796b041bd v8.0.1125

patch 8.0.1125: wrong window height when splitting window with window toolbar commit https://github.com/vim/vim/commit/d326ad6e93604222c64bae51f47521fe9114d1ea Author: Bram Moolenaar <Bram@vim.org> Date: Mon Sep 18 20:31:41 2017 +0200 patch 8.0.1125: wrong window height when splitting window with window toolbar Problem: Wrong window height when splitting window with window toolbar. Solution: Add or subtract the window toolbar height.
author Christian Brabandt <cb@256bit.org>
date Mon, 18 Sep 2017 20:45:04 +0200
parents 8b61d4462700
children 35aade9a0fc8
files src/version.c src/window.c
diffstat 2 files changed, 27 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1125,
+/**/
     1124,
 /**/
     1123,
--- a/src/window.c
+++ b/src/window.c
@@ -1098,14 +1098,22 @@ win_split_ins(
 	{
 	    /* set height and row of new window to full height */
 	    wp->w_winrow = tabline_height();
-	    win_new_height(wp, curfrp->fr_height - (p_ls > 0));
+	    win_new_height(wp, curfrp->fr_height - (p_ls > 0)
+#ifdef FEAT_MENU
+		    - wp->w_winbar_height
+#endif
+		    );
 	    wp->w_status_height = (p_ls > 0);
 	}
 	else
 	{
 	    /* height and row of new window is same as current window */
 	    wp->w_winrow = oldwin->w_winrow;
-	    win_new_height(wp, oldwin->w_height);
+	    win_new_height(wp, oldwin->w_height
+#ifdef FEAT_MENU
+		    + oldwin->w_winbar_height
+#endif
+		    );
 	    wp->w_status_height = oldwin->w_status_height;
 	}
 	frp->fr_height = curfrp->fr_height;
@@ -1163,7 +1171,11 @@ win_split_ins(
 	win_new_height(wp, new_size);
 	if (flags & (WSP_TOP | WSP_BOT))
 	{
-	    int new_fr_height = curfrp->fr_height - new_size;
+	    int new_fr_height = curfrp->fr_height - new_size
+#ifdef FEAT_MENU
+		+ wp->w_winbar_height
+#endif
+		;
 
 	    if (!((flags & WSP_BOT) && p_ls == 0))
 		new_fr_height -= STATUS_HEIGHT;
@@ -2855,7 +2867,11 @@ frame_new_height(
     {
 	/* Simple case: just one window. */
 	win_new_height(topfrp->fr_win,
-				    height - topfrp->fr_win->w_status_height);
+				    height - topfrp->fr_win->w_status_height
+#ifdef FEAT_MENU
+				    - topfrp->fr_win->w_winbar_height
+#endif
+				    );
     }
     else if (topfrp->fr_layout == FR_ROW)
     {
@@ -3201,7 +3217,11 @@ frame_fix_width(win_T *wp)
     static void
 frame_fix_height(win_T *wp)
 {
-    wp->w_frame->fr_height = wp->w_height + wp->w_status_height;
+    wp->w_frame->fr_height = wp->w_height + wp->w_status_height
+#ifdef FEAT_MENU
+	+ wp->w_winbar_height
+#endif
+	;
 }
 
 /*