diff options
author | luukvbaal <luukvbaal@gmail.com> | 2024-11-25 14:54:43 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-25 05:54:43 -0800 |
commit | b47b0b3f757d58a76242ac325a35cac6fbeffc07 (patch) | |
tree | eba17615cbcd567a98c76fb5e353b84ad3e1c54d /src | |
parent | beec377e905baca73e772080c4f276c800ad2a40 (diff) | |
download | rneovim-b47b0b3f757d58a76242ac325a35cac6fbeffc07.tar.gz rneovim-b47b0b3f757d58a76242ac325a35cac6fbeffc07.tar.bz2 rneovim-b47b0b3f757d58a76242ac325a35cac6fbeffc07.zip |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/drawscreen.c | 8 |
1 files changed, 6 insertions, 2 deletions
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; |