aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLuuk van Baal <luukvbaal@gmail.com>2025-01-22 23:13:40 +0100
committerluukvbaal <luukvbaal@gmail.com>2025-01-24 11:39:39 +0100
commitd98827b634af29d74079d1848dd5e8c5d2be1233 (patch)
treed9f53ce1424d5cdb722d9dec322181753eaf95e1 /src
parent0fd4ef5da7448fa3449643b23d6aa3af1640efe8 (diff)
downloadrneovim-d98827b634af29d74079d1848dd5e8c5d2be1233.tar.gz
rneovim-d98827b634af29d74079d1848dd5e8c5d2be1233.tar.bz2
rneovim-d98827b634af29d74079d1848dd5e8c5d2be1233.zip
fix(messages): avoid empty msg_showmode with 'noshowmode'
Diffstat (limited to 'src')
-rw-r--r--src/nvim/message.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/nvim/message.c b/src/nvim/message.c
index 4c20edb7eb..6fc102e4ff 100644
--- a/src/nvim/message.c
+++ b/src/nvim/message.c
@@ -3183,7 +3183,11 @@ void msg_ext_flush_showmode(void)
{
// Showmode messages doesn't interrupt normal message flow, so we use
// separate event. Still reuse the same chunking logic, for simplicity.
- if (ui_has(kUIMessages)) {
+ // This is called unconditionally; check if we are emitting, or have
+ // emitted non-empty "content".
+ static bool clear = false;
+ if (ui_has(kUIMessages) && (msg_ext_last_attr != -1 || clear)) {
+ clear = msg_ext_last_attr != -1;
msg_ext_emit_chunk();
Array *tofree = msg_ext_init_chunks();
ui_call_msg_showmode(*tofree);