mirror of
https://github.com/neovim/neovim.git
synced 2025-09-14 15:28:17 +00:00
vim-patch:8.1.0057: popup menu displayed wrong when using autocmd
Problem: Popup menu displayed wrong when using autocmd.
Solution: Use aucmd_prepbuf(). Force updating status line if the popup menu
is going to be redrawn anyway. (Christian Brabandt, closes vim/vim#3009)
6ba3ec1bac
This commit is contained in:
@@ -1390,7 +1390,12 @@ ins_redraw (
|
||||
if (ready && has_event(EVENT_TEXTCHANGEDI)
|
||||
&& curbuf->b_last_changedtick != buf_get_changedtick(curbuf)
|
||||
&& !pum_visible()) {
|
||||
aco_save_T aco;
|
||||
|
||||
// save and restore curwin and curbuf, in case the autocmd changes them
|
||||
aucmd_prepbuf(&aco, curbuf);
|
||||
apply_autocmds(EVENT_TEXTCHANGEDI, NULL, NULL, false, curbuf);
|
||||
aucmd_restbuf(&aco);
|
||||
curbuf->b_last_changedtick = buf_get_changedtick(curbuf);
|
||||
}
|
||||
|
||||
@@ -1400,8 +1405,13 @@ ins_redraw (
|
||||
if (ready && has_event(EVENT_TEXTCHANGEDP)
|
||||
&& curbuf->b_last_changedtick_pum != buf_get_changedtick(curbuf)
|
||||
&& pum_visible()) {
|
||||
apply_autocmds(EVENT_TEXTCHANGEDP, NULL, NULL, false, curbuf);
|
||||
curbuf->b_last_changedtick_pum = buf_get_changedtick(curbuf);
|
||||
aco_save_T aco;
|
||||
|
||||
// save and restore curwin and curbuf, in case the autocmd changes them
|
||||
aucmd_prepbuf(&aco, curbuf);
|
||||
apply_autocmds(EVENT_TEXTCHANGEDP, NULL, NULL, false, curbuf);
|
||||
aucmd_restbuf(&aco);
|
||||
curbuf->b_last_changedtick_pum = buf_get_changedtick(curbuf);
|
||||
}
|
||||
|
||||
if (must_redraw)
|
||||
|
Reference in New Issue
Block a user