patch 8.0.1334: splitting a window with a WinBar damages window layout

Problem:    Splitting a window with a WinBar damages window layout.
            (Lifepillar)
Solution:   Take the winbar into account when computing the new window
            position.  Add WINBAR_HEIGHT().
diff --git a/src/version.c b/src/version.c
index dc29e3d..408b85c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1334,
+/**/
     1333,
 /**/
     1332,
diff --git a/src/vim.h b/src/vim.h
index 96bab71..83ffb29 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -1485,6 +1485,11 @@
 #define MIN_COLUMNS	12	/* minimal columns for screen */
 #define MIN_LINES	2	/* minimal lines for screen */
 #define STATUS_HEIGHT	1	/* height of a status line under a window */
+#ifdef FEAT_MENU		/* height of a status line under a window */
+# define WINBAR_HEIGHT(wp)	(wp)->w_winbar_height
+#else
+# define WINBAR_HEIGHT(wp)	0
+#endif
 #define QF_WINHEIGHT	10	/* default height for quickfix window */
 
 /*
diff --git a/src/window.c b/src/window.c
index 7bc3b9f..7d58c8a 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1098,21 +1098,14 @@
 	    /* 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)
-#ifdef FEAT_MENU
-		    - wp->w_winbar_height
-#endif
-		    );
+							  - WINBAR_HEIGHT(wp));
 	    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
-#ifdef FEAT_MENU
-		    + oldwin->w_winbar_height
-#endif
-		    );
+	    win_new_height(wp, oldwin->w_height + WINBAR_HEIGHT(oldwin));
 	    wp->w_status_height = oldwin->w_status_height;
 	}
 	frp->fr_height = curfrp->fr_height;
@@ -1171,10 +1164,7 @@
 	if (flags & (WSP_TOP | WSP_BOT))
 	{
 	    int new_fr_height = curfrp->fr_height - new_size
-#ifdef FEAT_MENU
-		+ wp->w_winbar_height
-#endif
-		;
+							  + WINBAR_HEIGHT(wp) ;
 
 	    if (!((flags & WSP_BOT) && p_ls == 0))
 		new_fr_height -= STATUS_HEIGHT;
@@ -1190,7 +1180,8 @@
 	}
 	else		/* new window below current one */
 	{
-	    wp->w_winrow = oldwin->w_winrow + oldwin->w_height + STATUS_HEIGHT;
+	    wp->w_winrow = oldwin->w_winrow + oldwin->w_height
+				       + STATUS_HEIGHT + WINBAR_HEIGHT(oldwin);
 	    wp->w_status_height = oldwin->w_status_height;
 	    if (!(flags & WSP_BOT))
 		oldwin->w_status_height = STATUS_HEIGHT;
@@ -2867,10 +2858,7 @@
 	/* Simple case: just one window. */
 	win_new_height(topfrp->fr_win,
 				    height - topfrp->fr_win->w_status_height
-#ifdef FEAT_MENU
-				    - topfrp->fr_win->w_winbar_height
-#endif
-				    );
+					      - WINBAR_HEIGHT(topfrp->fr_win));
     }
     else if (topfrp->fr_layout == FR_ROW)
     {
@@ -3217,10 +3205,7 @@
 frame_fix_height(win_T *wp)
 {
     wp->w_frame->fr_height = wp->w_height + wp->w_status_height
-#ifdef FEAT_MENU
-	+ wp->w_winbar_height
-#endif
-	;
+							  + WINBAR_HEIGHT(wp) ;
 }
 
 /*