Mercurial > vim
diff src/ex_docmd.c @ 17644:daa1dea1c1b3 v8.1.1819
patch 8.1.1819: :pedit does not work with a popup preview window
commit https://github.com/vim/vim/commit/1b6d9c4215a56f3dda4df6e05d655c853551ffbd
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Aug 5 21:52:04 2019 +0200
patch 8.1.1819: :pedit does not work with a popup preview window
Problem: :pedit does not work with a popup preview window.
Solution: Avoid aborting with an error. (fixes https://github.com/vim/vim/issues/4777) Also double check
that after prepare_tagpreview() the current window is not a
popup window.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 05 Aug 2019 22:00:06 +0200 |
parents | ccbf8c2a47ee |
children | a1437b8f2fac |
line wrap: on
line diff
--- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -7083,7 +7083,7 @@ do_exedit( int need_hide; int exmode_was = exmode_active; - if (ERROR_IF_POPUP_WINDOW) + if (eap->cmdidx != CMD_pedit && ERROR_IF_POPUP_WINDOW) return; /* * ":vi" command ends Ex mode. @@ -8798,9 +8798,11 @@ ex_pedit(exarg_T *eap) g_do_tagpreview = p_pvh; prepare_tagpreview(TRUE); + keep_help_flag = bt_help(curwin_save->w_buffer); do_exedit(eap, NULL); keep_help_flag = FALSE; + if (curwin != curwin_save && win_valid(curwin_save)) { /* Return cursor to where we were */ @@ -8808,6 +8810,13 @@ ex_pedit(exarg_T *eap) redraw_later(VALID); win_enter(curwin_save, TRUE); } +# ifdef FEAT_TEXT_PROP + else if (WIN_IS_POPUP(curwin)) + { + // can't keep focus in popup window + win_enter(firstwin, TRUE); + } +# endif g_do_tagpreview = 0; } #endif