aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluukvbaal <luukvbaal@gmail.com>2025-01-10 23:43:45 +0100
committerGitHub <noreply@github.com>2025-01-10 14:43:45 -0800
commit37c77ab46baaeadb7c3cc5f3b77bd8ca1d7cd0da (patch)
tree7020a096a1a2442031f231bda2ba6262c8922739
parentcb02c20569b56545a1657d4f7f8f29171f1037d7 (diff)
downloadrneovim-37c77ab46baaeadb7c3cc5f3b77bd8ca1d7cd0da.tar.gz
rneovim-37c77ab46baaeadb7c3cc5f3b77bd8ca1d7cd0da.tar.bz2
rneovim-37c77ab46baaeadb7c3cc5f3b77bd8ca1d7cd0da.zip
fix(messages): attaching/detaching ext_messages causes asserts #31952
Problem: Assert hit related to message kind, which is reset after a ext_messages UI is forcibly detached, so the assertion is expectedly false. Assert hit related to message grid variables after an ext_messages UI attaches while message grid is scrolled. Solution: Don't check message kind assertion if no ext_messages UI is attached. Flush message grid when first/last ext_messages UI attaches/detaches.
-rw-r--r--src/nvim/message.c2
-rw-r--r--src/nvim/ui.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/nvim/message.c b/src/nvim/message.c
index e288353ddc..12d980f58f 100644
--- a/src/nvim/message.c
+++ b/src/nvim/message.c
@@ -312,7 +312,7 @@ void msg_multihl(HlMessage hl_msg, const char *kind, bool history, bool err)
} else {
msg_multiline(chunk.text, chunk.hl_id, true, false, &need_clear);
}
- assert(msg_ext_kind == kind);
+ assert(!ui_has(kUIMessages) || msg_ext_kind == kind);
}
if (history && kv_size(hl_msg)) {
add_msg_hist_multihl(NULL, 0, 0, true, hl_msg);
diff --git a/src/nvim/ui.c b/src/nvim/ui.c
index d242baf83b..51815c36e1 100644
--- a/src/nvim/ui.c
+++ b/src/nvim/ui.c
@@ -223,10 +223,10 @@ void ui_refresh(void)
// Reset 'cmdheight' for all tabpages when ext_messages toggles.
if (had_message != ui_ext[kUIMessages]) {
set_option_value(kOptCmdheight, NUMBER_OPTVAL(had_message), 0);
- command_height();
FOR_ALL_TABS(tp) {
tp->tp_ch_used = had_message;
}
+ msg_scroll_flush();
}
if (!ui_active()) {