mirror of
https://github.com/neovim/neovim.git
synced 2025-12-13 18:12:50 +00:00
fix(statusline): redraw if Visual selection other end changes (#36281)
(cherry picked from commit af0f7b59b1)
This commit is contained in:
committed by
github-actions[bot]
parent
a215da823f
commit
4cc060bf44
@@ -1248,6 +1248,7 @@ struct window_S {
|
||||
int w_stl_recording; // reg_recording when last redrawn
|
||||
int w_stl_state; // get_real_state() when last redrawn
|
||||
int w_stl_visual_mode; // VIsual_mode when last redrawn
|
||||
pos_T w_stl_visual_pos; // VIsual when last redrawn
|
||||
|
||||
int w_alt_fnum; // alternate file (for # and CTRL-^)
|
||||
|
||||
|
||||
@@ -915,7 +915,10 @@ void show_cursor_info_later(bool force)
|
||||
|| empty_line != curwin->w_stl_empty
|
||||
|| reg_recording != curwin->w_stl_recording
|
||||
|| state != curwin->w_stl_state
|
||||
|| (VIsual_active && VIsual_mode != curwin->w_stl_visual_mode)) {
|
||||
|| (VIsual_active && (VIsual_mode != curwin->w_stl_visual_mode
|
||||
|| VIsual.lnum != curwin->w_stl_visual_pos.lnum
|
||||
|| VIsual.col != curwin->w_stl_visual_pos.col
|
||||
|| VIsual.coladd != curwin->w_stl_visual_pos.coladd))) {
|
||||
if (curwin->w_status_height || global_stl_height()) {
|
||||
curwin->w_redr_status = true;
|
||||
} else {
|
||||
@@ -939,6 +942,7 @@ void show_cursor_info_later(bool force)
|
||||
curwin->w_stl_state = state;
|
||||
if (VIsual_active) {
|
||||
curwin->w_stl_visual_mode = VIsual_mode;
|
||||
curwin->w_stl_visual_pos = VIsual;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -656,6 +656,28 @@ describe('statusline', function()
|
||||
]])
|
||||
feed('<Esc>')
|
||||
screen:expect(s2)
|
||||
|
||||
-- Visual selection other end change #36280
|
||||
exec([[
|
||||
function! DebugVisualSelection()
|
||||
return printf("v %s %s", col("v"), col("."))
|
||||
endfunction
|
||||
set statusline=%!DebugVisualSelection()
|
||||
]])
|
||||
feed('iabc<Esc>v')
|
||||
screen:expect([[
|
||||
ab^c |
|
||||
{1:~ }|*5
|
||||
{3:v 3 3 }|
|
||||
{5:-- VISUAL --} |
|
||||
]])
|
||||
feed('iw')
|
||||
screen:expect([[
|
||||
{17:ab}^c |
|
||||
{1:~ }|*5
|
||||
{3:v 1 3 }|
|
||||
{5:-- VISUAL --} |
|
||||
]])
|
||||
end)
|
||||
|
||||
it('ruler is redrawn in cmdline with redrawstatus #22804', function()
|
||||
|
||||
Reference in New Issue
Block a user