From b47b0b3f757d58a76242ac325a35cac6fbeffc07 Mon Sep 17 00:00:00 2001 From: luukvbaal Date: Mon, 25 Nov 2024 14:54:43 +0100 Subject: fix(grid): double grid_line_start() with ext_messages #31292 Problem: Hit double grid_line_start() assert when redrawing from ext_messages msg_ruler event. Solution: Do not start() batched grid calls when win_redr_ruler() will not puts() anything. --- src/nvim/drawscreen.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/nvim/drawscreen.c b/src/nvim/drawscreen.c index 3719d38df2..19a8093a16 100644 --- a/src/nvim/drawscreen.c +++ b/src/nvim/drawscreen.c @@ -1092,9 +1092,13 @@ int showmode(void) win_T *ruler_win = curwin->w_status_height == 0 ? curwin : lastwin_nofloating(); if (redrawing() && ruler_win->w_status_height == 0 && global_stl_height() == 0 && !(p_ch == 0 && !ui_has(kUIMessages))) { - grid_line_start(&msg_grid_adj, Rows - 1); + if (!ui_has(kUIMessages)) { + grid_line_start(&msg_grid_adj, Rows - 1); + } win_redr_ruler(ruler_win); - grid_line_flush(); + if (!ui_has(kUIMessages)) { + grid_line_flush(); + } } redraw_cmdline = false; -- cgit