aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2019-01-26 16:57:09 +0100
committerBjörn Linse <bjorn.linse@gmail.com>2019-02-02 16:31:49 +0100
commit2405cf82552e93eb3d5441d2f109647b97af5521 (patch)
tree3d7e26596607e61a16c5f63ac27163d56f6507bd /src
parent2c01e79dc47ff83e0af118fb3fee50fa2ff7fcf2 (diff)
downloadrneovim-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.c10
-rw-r--r--src/nvim/ex_getln.c8
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;