Problem: Possible to leave a popup window with win_gotoid().
Solution: Give an error when trying to leave a popup window with
win_gotoid(). (closes #10253)
emsg(_(e_invalid_in_cmdline_window));
return;
}
+#endif
+#if defined(FEAT_PROP_POPUP) && defined(FEAT_TERMINAL)
+ if (popup_is_popup(curwin) && curbuf->b_term != NULL)
+ {
+ emsg(_(e_not_allowed_for_terminal_in_popup_window));
+ return;
+ }
#endif
FOR_ALL_TAB_WINDOWS(tp, wp)
if (wp->w_id == id)
exe buf2 .. 'bwipe!'
endfunc
+func Test_escape_popup_terminal()
+ set hidden
+
+ " Cannot escape a terminal popup window using win_gotoid
+ let prev_win = win_getid()
+ eval term_start('sh', #{hidden: 1, term_finish: 'close'})->popup_create({})
+ call assert_fails("call win_gotoid(" .. prev_win .. ")", 'E863:')
+
+ call popup_clear(1)
+ set hidden&
+endfunc
+
func Test_issue_5607()
let wincount = winnr('$')
exe 'terminal' &shell &shellcmdflag 'exit'
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 4814,
/**/
4813,
/**/