mirror of
https://github.com/vim/vim.git
synced 2025-09-27 04:14:06 -04:00
patch 8.2.0670: cannot change window when evaluating 'completefunc'
Problem: Cannot change window when evaluating 'completefunc'. Solution: Make a difference between not changing text or buffers and also not changing window.
This commit is contained in:
@@ -176,9 +176,10 @@ edit(
|
||||
// Don't allow changes in the buffer while editing the cmdline. The
|
||||
// caller of getcmdline() may get confused.
|
||||
// Don't allow recursive insert mode when busy with completion.
|
||||
if (textlock != 0 || ins_compl_active() || compl_busy || pum_visible())
|
||||
if (textwinlock != 0 || textlock != 0
|
||||
|| ins_compl_active() || compl_busy || pum_visible())
|
||||
{
|
||||
emsg(_(e_textlock));
|
||||
emsg(_(e_textwinlock));
|
||||
return FALSE;
|
||||
}
|
||||
ins_compl_clear(); // clear stuff for CTRL-X mode
|
||||
@@ -5944,7 +5945,7 @@ do_insert_char_pre(int c)
|
||||
}
|
||||
|
||||
// Lock the text to avoid weird things from happening.
|
||||
++textlock;
|
||||
++textwinlock;
|
||||
set_vim_var_string(VV_CHAR, buf, -1); // set v:char
|
||||
|
||||
res = NULL;
|
||||
@@ -5958,7 +5959,7 @@ do_insert_char_pre(int c)
|
||||
}
|
||||
|
||||
set_vim_var_string(VV_CHAR, NULL, -1); // clear v:char
|
||||
--textlock;
|
||||
--textwinlock;
|
||||
|
||||
// Restore the State, it may have been changed.
|
||||
State = save_State;
|
||||
|
Reference in New Issue
Block a user