mirror of
https://github.com/vim/vim.git
synced 2025-09-27 04:14:06 -04:00
patch 8.2.1989: info popup triggers WinEnter and WinLeave autocommands
Problem: Info popup triggers WinEnter and WinLeave autocommands. Solution: Suppress autocommands for the info popup. (closes #7296)
This commit is contained in:
@@ -795,6 +795,10 @@ pum_set_selected(int n, int repeat UNUSED)
|
||||
use_popup = USEPOPUP_NORMAL;
|
||||
else
|
||||
use_popup = USEPOPUP_NONE;
|
||||
if (use_popup != USEPOPUP_NONE)
|
||||
// don't use WinEnter or WinLeave autocommands for the info
|
||||
// popup
|
||||
block_autocmds();
|
||||
# endif
|
||||
// Open a preview window and set "curwin" to it.
|
||||
// 3 lines by default, prefer 'previewheight' if set and smaller.
|
||||
@@ -972,6 +976,10 @@ pum_set_selected(int n, int repeat UNUSED)
|
||||
if (WIN_IS_POPUP(curwin))
|
||||
// can't keep focus in a popup window
|
||||
win_enter(firstwin, TRUE);
|
||||
# endif
|
||||
# ifdef FEAT_PROP_POPUP
|
||||
if (use_popup != USEPOPUP_NONE)
|
||||
unblock_autocmds();
|
||||
# endif
|
||||
}
|
||||
#endif
|
||||
|
@@ -3243,6 +3243,10 @@ func Get_popupmenu_lines()
|
||||
call popup_show(id)
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Check that no autocommands are triggered for the info popup
|
||||
au WinEnter * if win_gettype() == 'popup' | call setline(2, 'WinEnter') | endif
|
||||
au WinLeave * if win_gettype() == 'popup' | call setline(2, 'WinLeave') | endif
|
||||
END
|
||||
return lines
|
||||
endfunc
|
||||
|
@@ -750,6 +750,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1989,
|
||||
/**/
|
||||
1988,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user