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 #4777) Also double check
that after prepare_tagpreview() the current window is not a
popup window.
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 3cd615a..74adb84 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -7083,7 +7083,7 @@
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 @@
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 @@
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