diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2019-01-26 16:57:09 +0100 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2019-02-02 16:31:49 +0100 |
commit | 2405cf82552e93eb3d5441d2f109647b97af5521 (patch) | |
tree | 3d7e26596607e61a16c5f63ac27163d56f6507bd /src | |
parent | 2c01e79dc47ff83e0af118fb3fee50fa2ff7fcf2 (diff) | |
download | rneovim-2405cf82552e93eb3d5441d2f109647b97af5521.tar.gz rneovim-2405cf82552e93eb3d5441d2f109647b97af5521.tar.bz2 rneovim-2405cf82552e93eb3d5441d2f109647b97af5521.zip |
vim-patch:8.1.0792: bad display if opening cmdline window from Insert completion
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/edit.c | 10 | ||||
-rw-r--r-- | src/nvim/ex_getln.c | 8 |
2 files changed, 15 insertions, 3 deletions
diff --git a/src/nvim/edit.c b/src/nvim/edit.c index b39ec58ffe..a63dd97ba8 100644 --- a/src/nvim/edit.c +++ b/src/nvim/edit.c @@ -7132,11 +7132,17 @@ static void ins_reg(void) * message for it. Only call it explicitly. */ ++no_u_sync; if (regname == '=') { - /* Sync undo when evaluating the expression calls setline() or - * append(), so that it can be undone separately. */ + pos_T curpos = curwin->w_cursor; + + // Sync undo when evaluating the expression calls setline() or + // append(), so that it can be undone separately. u_sync_once = 2; regname = get_expr_register(); + + // Cursor may be moved back a column. + curwin->w_cursor = curpos; + check_cursor(); } if (regname == NUL || !valid_yank_reg(regname, false)) { vim_beep(BO_REG); diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c index 786769dc7d..bd03160bcd 100644 --- a/src/nvim/ex_getln.c +++ b/src/nvim/ex_getln.c @@ -51,6 +51,7 @@ #include "nvim/option.h" #include "nvim/os_unix.h" #include "nvim/path.h" +#include "nvim/popupmnu.h" #include "nvim/regexp.h" #include "nvim/screen.h" #include "nvim/search.h" @@ -6051,7 +6052,12 @@ static int open_cmdwin(void) /* Don't execute autocommands while creating the window. */ block_autocmds(); - /* don't use a new tab page */ + + // When using completion in Insert mode with <C-R>=<C-F> one can open the + // command line window, but we don't want the popup menu then. + pum_undisplay(true); + + // don't use a new tab page cmdmod.tab = 0; cmdmod.noswapfile = 1; |