diff options
| author | Sean Dewar <6256228+seandewar@users.noreply.github.com> | 2026-03-10 10:06:20 +0000 |
|---|---|---|
| committer | Sean Dewar <6256228+seandewar@users.noreply.github.com> | 2026-03-14 19:27:20 +0000 |
| commit | c924c2a7b316afb982cd7786923446517c6fec6b (patch) | |
| tree | 52ba30c3ed075bbb55c3657b6e1d3c8281ae98f3 /runtime/lua/vim/provider/python.lua | |
| parent | e5240b35c3b78e34ca16ccc8369d0aeb4e1add8e (diff) | |
| download | rneovim-c924c2a7b316afb982cd7786923446517c6fec6b.tar.gz rneovim-c924c2a7b316afb982cd7786923446517c6fec6b.tar.bz2 rneovim-c924c2a7b316afb982cd7786923446517c6fec6b.zip | |
fix(api): win_config_float_tp grid removal, redraw
Problem: when nvim_win_set_config moves a floatwin between tabpages, its grid
may remain if temporarily inside another tabpage. Also, things like tablines
aren't redrawn.
Solution: always remove its grid. Set must_redraw so things are redrawn even if
w_redr_type was already set for the old tabpage.
I don't think it's necessary to do anything extra here when removing the grid:
- win_ui_flush calls ui_call_win_hide anyway, and calling it manually ends up
sending two win_hide events.
- ui_comp_remove_grid safely does nothing if the grid doesn't exist.
- w_pos_changed is set by win_config_float later, if that's needed. I think the
pending_comp_index_update set by ui_comp_remove_grid is enough anyway, at
least for making sure win_ui_flush sends win_hide.
Added test fails with the prior approach of checking `parent_tp != curtab`, but
also `win_tp == curtab`. (which is a better, but still flawed alternative)
The added redrawing here also supersedes setting w_hl_needs_update, and also
redraws stuff like the tabline to pass the new test.
Diffstat (limited to 'runtime/lua/vim/provider/python.lua')
0 files changed, 0 insertions, 0 deletions