patch 8.1.1088: height of quickfix window not retained with vertical split
Problem: Height of quickfix window not retained with vertical split.
Solution: Use frame_fixed_height() and frame_fixed_width(). (Hongbo Liu,
closes #4013, closes #2998)
diff --git a/src/testdir/test_winbuf_close.vim b/src/testdir/test_winbuf_close.vim
index e461861..ee43540 100644
--- a/src/testdir/test_winbuf_close.vim
+++ b/src/testdir/test_winbuf_close.vim
@@ -158,3 +158,29 @@
%bwipeout!
setlocal nowinfixwidth splitbelow& splitright&
endfunction
+
+" Test that 'winfixheight' will be respected even there is non-leaf frame
+fun! Test_winfixheight_non_leaf_frame()
+ vsplit
+ botright 11new
+ let l:wid = win_getid()
+ setlocal winfixheight
+ call assert_equal(11, winheight(l:wid))
+ botright new
+ bwipe!
+ call assert_equal(11, winheight(l:wid))
+ %bwipe!
+endf
+
+" Test that 'winfixwidth' will be respected even there is non-leaf frame
+fun! Test_winfixwidth_non_leaf_frame()
+ split
+ topleft 11vnew
+ let l:wid = win_getid()
+ setlocal winfixwidth
+ call assert_equal(11, winwidth(l:wid))
+ topleft new
+ bwipe!
+ call assert_equal(11, winwidth(l:wid))
+ %bwipe!
+endf
diff --git a/src/version.c b/src/version.c
index 6d1df32..3361685 100644
--- a/src/version.c
+++ b/src/version.c
@@ -776,6 +776,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1088,
+/**/
1087,
/**/
1086,
diff --git a/src/window.c b/src/window.c
index 6c9c705..b905fbf 100644
--- a/src/window.c
+++ b/src/window.c
@@ -2677,10 +2677,10 @@
{
if (frp != NULL)
{
- if (frp->fr_win != NULL && !frp->fr_win->w_p_wfh)
+ if (!frame_fixed_height(frp))
{
frp2 = frp;
- wp = frp->fr_win;
+ wp = frame2win(frp2);
break;
}
frp = frp->fr_prev;
@@ -2714,10 +2714,10 @@
{
if (frp != NULL)
{
- if (frp->fr_win != NULL && !frp->fr_win->w_p_wfw)
+ if (!frame_fixed_width(frp))
{
frp2 = frp;
- wp = frp->fr_win;
+ wp = frame2win(frp2);
break;
}
frp = frp->fr_prev;