0
0
mirror of https://github.com/vim/vim.git synced 2025-10-18 07:54:29 -04:00

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.
This commit is contained in:
Bram Moolenaar
2017-09-18 20:31:41 +02:00
parent f16c71b669
commit d326ad6e93
2 changed files with 27 additions and 5 deletions

View File

@@ -761,6 +761,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1125,
/**/ /**/
1124, 1124,
/**/ /**/

View File

@@ -1098,14 +1098,22 @@ win_split_ins(
{ {
/* set height and row of new window to full height */ /* set height and row of new window to full height */
wp->w_winrow = tabline_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); wp->w_status_height = (p_ls > 0);
} }
else else
{ {
/* height and row of new window is same as current window */ /* height and row of new window is same as current window */
wp->w_winrow = oldwin->w_winrow; 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; wp->w_status_height = oldwin->w_status_height;
} }
frp->fr_height = curfrp->fr_height; frp->fr_height = curfrp->fr_height;
@@ -1163,7 +1171,11 @@ win_split_ins(
win_new_height(wp, new_size); win_new_height(wp, new_size);
if (flags & (WSP_TOP | WSP_BOT)) 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)) if (!((flags & WSP_BOT) && p_ls == 0))
new_fr_height -= STATUS_HEIGHT; new_fr_height -= STATUS_HEIGHT;
@@ -2855,7 +2867,11 @@ frame_new_height(
{ {
/* Simple case: just one window. */ /* Simple case: just one window. */
win_new_height(topfrp->fr_win, 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) else if (topfrp->fr_layout == FR_ROW)
{ {
@@ -3201,7 +3217,11 @@ frame_fix_width(win_T *wp)
static void static void
frame_fix_height(win_T *wp) 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
;
} }
/* /*