Mercurial > vim
diff src/edit.c @ 14079:b5e43a048878 v8.1.0057
patch 8.1.0057: popup menu displayed wrong when using autocmd
commit https://github.com/vim/vim/commit/6ba3ec1bace67513a352326864cebc16b3c5bc56
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Jun 16 15:32:38 2018 +0200
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 #3009)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 16 Jun 2018 15:45:05 +0200 |
parents | c1fcfafa8d1a |
children | a9d94f10ecef |
line wrap: on
line diff
--- a/src/edit.c +++ b/src/edit.c @@ -1704,7 +1704,12 @@ ins_redraw( #endif ) { + 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 = CHANGEDTICK(curbuf); } @@ -1716,7 +1721,12 @@ ins_redraw( && curbuf->b_last_changedtick_pum != 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_TEXTCHANGEDP, NULL, NULL, FALSE, curbuf); + aucmd_restbuf(&aco); curbuf->b_last_changedtick_pum = CHANGEDTICK(curbuf); } #endif