forked from aniani/vim
patch 8.2.0007: popup menu positioned wrong with folding in two tabs
Problem: Popup menu positioned wrong with folding in two tabs. Solution: Update the cursor line height. (closes #5353)
This commit is contained in:
parent
6e43b30a85
commit
09dd2bb336
@ -816,7 +816,7 @@ validate_virtcol_win(win_T *wp)
|
|||||||
/*
|
/*
|
||||||
* Validate curwin->w_cline_height only.
|
* Validate curwin->w_cline_height only.
|
||||||
*/
|
*/
|
||||||
static void
|
void
|
||||||
validate_cheight(void)
|
validate_cheight(void)
|
||||||
{
|
{
|
||||||
check_cursor_moved(curwin);
|
check_cursor_moved(curwin);
|
||||||
|
@ -180,6 +180,7 @@ pum_display(
|
|||||||
// pum below "pum_win_row"
|
// pum below "pum_win_row"
|
||||||
|
|
||||||
// Leave two lines of context if possible
|
// Leave two lines of context if possible
|
||||||
|
validate_cheight();
|
||||||
if (curwin->w_cline_row
|
if (curwin->w_cline_row
|
||||||
+ curwin->w_cline_height - curwin->w_wrow >= 3)
|
+ curwin->w_cline_height - curwin->w_wrow >= 3)
|
||||||
context_lines = 3;
|
context_lines = 3;
|
||||||
|
@ -21,6 +21,7 @@ void validate_cursor(void);
|
|||||||
void validate_cline_row(void);
|
void validate_cline_row(void);
|
||||||
void validate_virtcol(void);
|
void validate_virtcol(void);
|
||||||
void validate_virtcol_win(win_T *wp);
|
void validate_virtcol_win(win_T *wp);
|
||||||
|
void validate_cheight(void);
|
||||||
void validate_cursor_col(void);
|
void validate_cursor_col(void);
|
||||||
int win_col_off(win_T *wp);
|
int win_col_off(win_T *wp);
|
||||||
int curwin_col_off(void);
|
int curwin_col_off(void);
|
||||||
|
10
src/testdir/dumps/Test_pum_with_folds_two_tabs.dump
Normal file
10
src/testdir/dumps/Test_pum_with_folds_two_tabs.dump
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
| +8#0000001#e0e0e08|+| |[|N|o| |N|a|m|e|]| | +2#0000000#ffffff0|+| |[|N|o| |N|a|m|e|]| | +1&&@47|X+8#0000001#e0e0e08
|
||||||
|
|"+0#0000000#ffffff0| |x| |{@2|1| @66
|
||||||
|
|"| |a|0> |s|o|m|e| |t|e|x|t| @60
|
||||||
|
|"| +0#0000001#e0e0e08|a|0| @12| +0#0000000#0000001| +0&#ffffff0@56
|
||||||
|
|"| +0#0000001#ffd7ff255|a|1| @12| +0#0000000#0000001| +0&#ffffff0@56
|
||||||
|
|"| +0#0000001#ffd7ff255|a|2| @12| +0#0000000#0000001| +0&#ffffff0@56
|
||||||
|
|"| +0#0000001#ffd7ff255|a|3| @12| +0#0000000#a8a8a8255| +0&#ffffff0@56
|
||||||
|
|"| +0#0000001#ffd7ff255|a|4| @12| +0#0000000#a8a8a8255| +0&#ffffff0@56
|
||||||
|
|"| +0#0000001#ffd7ff255|a|5| @12| +0#0000000#a8a8a8255| +0&#ffffff0@56
|
||||||
|
|-+2&&@1| |K|e|y|w|o|r|d| |c|o|m|p|l|e|t|i|o|n| |(|^|N|^|P|)| |m+0#00e0003&|a|t|c|h| |1| |o|f| |1|0| +0#0000000&@32
|
@ -1,3 +1,4 @@
|
|||||||
|
source screendump.vim
|
||||||
source check.vim
|
source check.vim
|
||||||
|
|
||||||
" Test for insert expansion
|
" Test for insert expansion
|
||||||
@ -380,3 +381,26 @@ func Test_ins_completeslash()
|
|||||||
set completeslash=
|
set completeslash=
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_pum_with_folds_two_tabs()
|
||||||
|
CheckScreendump
|
||||||
|
|
||||||
|
let lines =<< trim END
|
||||||
|
set fdm=marker
|
||||||
|
call setline(1, ['" x {{{1', '" a some text'])
|
||||||
|
call setline(3, range(&lines)->map({_, val -> '" a' .. val}))
|
||||||
|
norm! zm
|
||||||
|
tab sp
|
||||||
|
call feedkeys('2Gzv', 'xt')
|
||||||
|
call feedkeys("0fa", 'xt')
|
||||||
|
END
|
||||||
|
|
||||||
|
call writefile(lines, 'Xpumscript')
|
||||||
|
let buf = RunVimInTerminal('-S Xpumscript', #{rows: 10})
|
||||||
|
call term_wait(buf, 100)
|
||||||
|
call term_sendkeys(buf, "a\<C-N>")
|
||||||
|
call VerifyScreenDump(buf, 'Test_pum_with_folds_two_tabs', {})
|
||||||
|
|
||||||
|
call term_sendkeys(buf, "\<Esc>")
|
||||||
|
call StopVimInTerminal(buf)
|
||||||
|
call delete('Xpumscript')
|
||||||
|
endfunc
|
||||||
|
@ -742,6 +742,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 */
|
||||||
|
/**/
|
||||||
|
7,
|
||||||
/**/
|
/**/
|
||||||
6,
|
6,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user