vim-patch:8.1.1088: height of quickfix window not retained with vertical split (#9818)

Problem:    Height of quickfix window not retained with vertical split.
Solution:   Use frame_fixed_height() and frame_fixed_width(). (Hongbo Liu,
            closes vim/vim#4013, closes vim/vim#2998)
9e1e358d37

closes #3608
This commit is contained in:
Justin M. Keyes 2019-03-30 22:20:08 +01:00 committed by GitHub
parent 104a40463a
commit 2bdc7cac8b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 4 deletions

View File

@ -158,3 +158,29 @@ func Test_winfixwidth_on_close()
%bwipeout! %bwipeout!
setlocal nowinfixwidth splitbelow& splitright& setlocal nowinfixwidth splitbelow& splitright&
endfunction 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

View File

@ -2679,9 +2679,9 @@ winframe_remove (
frp3 = frp_close->fr_next; frp3 = frp_close->fr_next;
while (frp != NULL || frp3 != NULL) { while (frp != NULL || frp3 != NULL) {
if (frp != NULL) { if (frp != NULL) {
if (frp->fr_win != NULL && !frp->fr_win->w_p_wfh) { if (!frame_fixed_height(frp)) {
frp2 = frp; frp2 = frp;
wp = frp->fr_win; wp = frame2win(frp2);
break; break;
} }
frp = frp->fr_prev; frp = frp->fr_prev;
@ -2708,9 +2708,9 @@ winframe_remove (
frp3 = frp_close->fr_next; frp3 = frp_close->fr_next;
while (frp != NULL || frp3 != NULL) { while (frp != NULL || frp3 != NULL) {
if (frp != NULL) { if (frp != NULL) {
if (frp->fr_win != NULL && !frp->fr_win->w_p_wfw) { if (!frame_fixed_width(frp)) {
frp2 = frp; frp2 = frp;
wp = frp->fr_win; wp = frame2win(frp2);
break; break;
} }
frp = frp->fr_prev; frp = frp->fr_prev;