# HG changeset patch # User Bram Moolenaar # Date 1605446104 -3600 # Node ID 68dc849715b5f32dc5ab66b05347200b7c042251 # Parent f786ab06aee7fd9354253005fa86655596040246 patch 8.2.1989: info popup triggers WinEnter and WinLeave autocommands Commit: https://github.com/vim/vim/commit/2dfae04f376a58d4c5a801cb652c8eae65900672 Author: Bram Moolenaar Date: Sun Nov 15 14:09:37 2020 +0100 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 https://github.com/vim/vim/issues/7296) diff --git a/src/popupmenu.c b/src/popupmenu.c --- a/src/popupmenu.c +++ b/src/popupmenu.c @@ -795,6 +795,10 @@ pum_set_selected(int n, int repeat UNUSE 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. @@ -973,6 +977,10 @@ pum_set_selected(int n, int repeat UNUSE // 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 } diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim --- a/src/testdir/test_popupwin.vim +++ b/src/testdir/test_popupwin.vim @@ -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 diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1989, +/**/ 1988, /**/ 1987,