aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ops.c
diff options
context:
space:
mode:
authorShougo Matsushita <Shougo.Matsu@gmail.com>2022-07-31 17:06:32 +0900
committerzeertzjq <zeertzjq@outlook.com>2022-07-31 17:15:36 +0800
commit81a1d26c3eee816abaa3d0e611a8b1a0e473d3a1 (patch)
treeb4b14f57c36376c382bf9116f85aa84633749024 /src/nvim/ops.c
parentabc087f4c65ca547cae58518b42aee82ff4a07f6 (diff)
downloadrneovim-81a1d26c3eee816abaa3d0e611a8b1a0e473d3a1.tar.gz
rneovim-81a1d26c3eee816abaa3d0e611a8b1a0e473d3a1.tar.bz2
rneovim-81a1d26c3eee816abaa3d0e611a8b1a0e473d3a1.zip
vim-patch:9.0.0114: the command line takes up space even when not used
Problem: The command line takes up space even when not used. Solution: Allow for 'cmdheight' to be set to zero. (Shougo Matsushita, closes vim/vim#10675, closes vim/vim#940) https://github.com/vim/vim/commit/f39cfb72629f3e7fefaf578a3faa2619cd0654f8 Omit win_redr_ruler() change: winbar may still need redraw. Omit win_update() changes: Nvim doesn't use `Rows` there. Omit redraw_asap(): removed.
Diffstat (limited to 'src/nvim/ops.c')
-rw-r--r--src/nvim/ops.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/nvim/ops.c b/src/nvim/ops.c
index 75ba8dbede..b428bf8dd6 100644
--- a/src/nvim/ops.c
+++ b/src/nvim/ops.c
@@ -893,7 +893,7 @@ int do_record(int c)
{
char_u *p;
static int regname;
- static bool change_cmdheight = false;
+ static bool changed_cmdheight = false;
yankreg_T *old_y_previous;
int retval;
@@ -907,13 +907,15 @@ int do_record(int c)
showmode();
regname = c;
retval = OK;
+
if (!ui_has_messages()) {
// Enable macro indicator temporary
set_option_value("ch", 1L, NULL, 0);
update_screen(VALID);
- change_cmdheight = true;
+ changed_cmdheight = true;
}
+
apply_autocmds(EVENT_RECORDINGENTER, NULL, NULL, false, curbuf);
}
} else { // stop recording
@@ -936,15 +938,6 @@ int do_record(int c)
(void)tv_dict_add_str(dict, S_LEN("regname"), buf);
tv_dict_set_keys_readonly(dict);
- if (change_cmdheight) {
- // Restore cmdheight
- set_option_value("ch", 0L, NULL, 0);
-
- redraw_all_later(CLEAR);
-
- change_cmdheight = false;
- }
-
// Get the recorded key hits. K_SPECIAL will be escaped, this
// needs to be removed again to put it in a register. exec_reg then
// adds the escaping back later.
@@ -968,6 +961,12 @@ int do_record(int c)
y_previous = old_y_previous;
}
+
+ if (changed_cmdheight) {
+ // Restore cmdheight
+ set_option_value("ch", 0L, NULL, 0);
+ redraw_all_later(CLEAR);
+ }
}
return retval;
}