diff options
| author | Tanishq <139997424+dev-tnsq@users.noreply.github.com> | 2026-08-05 23:05:09 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-05 13:35:09 -0400 |
| commit | e2c0c634522b7742ef0fb0018bca8b373cf35417 (patch) | |
| tree | 0b62468ad6343440145d2af3bcfbbd99fbb90159 /runtime/lua/vim/_stringbuffer.lua | |
| parent | e58f29ca3e6935af5b14879db1e8f2b959555c10 (diff) | |
| download | rneovim-e2c0c634522b7742ef0fb0018bca8b373cf35417.tar.gz rneovim-e2c0c634522b7742ef0fb0018bca8b373cf35417.tar.bz2 rneovim-e2c0c634522b7742ef0fb0018bca8b373cf35417.zip | |
fix(statusline): don't clobber global statusline during autocmd #41169
Problem:
With `laststatus=3`, a pager float shares the main grid's statusline
row. Setting a diagnostic fires `DiagnosticChanged`, whose handler calls
`nvim__redraw({ statusline = true })`.
Analysis:
Inside the autocmd, `curwin` is temporarily switched to the tiled window
showing that buffer, so `win_redr_status()` paints its statusline over
the pager's `[Pager]` statusline on the shared row. After the autocmd,
`curwin` is restored but the pager statusline is never repainted.
Solution:
Use `ctx_saved_curwin()` decide whether to draw the global statusline,
matching `win_redr_stl_expr()` and `update_screen()`. No behavior change
if no buffer-context switch is active.
Diffstat (limited to 'runtime/lua/vim/_stringbuffer.lua')
0 files changed, 0 insertions, 0 deletions