From 21cf4b0ce63edd3bc5185d557a6bb8610e7c67b0 Mon Sep 17 00:00:00 2001 From: Björn Linse Date: Thu, 13 Jun 2019 18:46:15 +0200 Subject: screen: showcmd should never move the cursor Also restore the symmetry between grid_puts_line_start and grid_puts_line_flush. --- src/nvim/normal.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'src/nvim/normal.c') diff --git a/src/nvim/normal.c b/src/nvim/normal.c index f99e42e2e4..de8ff52fe1 100644 --- a/src/nvim/normal.c +++ b/src/nvim/normal.c @@ -3386,8 +3386,8 @@ bool add_to_showcmd(int c) void add_to_showcmd_c(int c) { - if (!add_to_showcmd(c)) - setcursor(); + add_to_showcmd(c); + setcursor(); } /* @@ -3448,18 +3448,18 @@ static void display_showcmd(void) return; } + int showcmd_row = (int)Rows - 1; + grid_puts_line_start(&default_grid, showcmd_row); + if (!showcmd_is_clear) { - grid_puts(&default_grid, showcmd_buf, (int)Rows - 1, sc_col, 0); + grid_puts(&default_grid, showcmd_buf, showcmd_row, sc_col, 0); } - /* - * clear the rest of an old message by outputting up to SHOWCMD_COLS - * spaces - */ - grid_puts(&default_grid, (char_u *)" " + len, (int)Rows - 1, + // clear the rest of an old message by outputting up to SHOWCMD_COLS spaces + grid_puts(&default_grid, (char_u *)" " + len, showcmd_row, sc_col + len, 0); - setcursor(); /* put cursor back where it belongs */ + grid_puts_line_flush(false); } /* -- cgit