fix(terminal): set cursor cell percentage (#31703)

Fixes: https://github.com/neovim/neovim/issues/31685
This commit is contained in:
Gregory Anders
2024-12-23 15:39:36 -06:00
committed by GitHub
parent 4cbeb6fa3c
commit c51bf5a6b2
2 changed files with 11 additions and 1 deletions

View File

@ -1961,9 +1961,11 @@ static void refresh_cursor(Terminal *term)
break;
case VTERM_PROP_CURSORSHAPE_UNDERLINE:
shape_table[SHAPE_IDX_TERM].shape = SHAPE_HOR;
shape_table[SHAPE_IDX_TERM].percentage = 20;
break;
case VTERM_PROP_CURSORSHAPE_BAR_LEFT:
shape_table[SHAPE_IDX_TERM].shape = SHAPE_VER;
shape_table[SHAPE_IDX_TERM].percentage = 25;
break;
}

View File

@ -152,7 +152,7 @@ describe(':terminal cursor', function()
end)
end)
it('can be modified by application #3681', function()
it('can be modified by application #3681 #31685', function()
skip(is_os('win'), '#31587')
local states = {
@ -181,7 +181,15 @@ describe(':terminal cursor', function()
eq(0, screen._mode_info[terminal_mode_idx].blinkon)
eq(0, screen._mode_info[terminal_mode_idx].blinkoff)
end
eq(v.shape, screen._mode_info[terminal_mode_idx].cursor_shape)
-- Cell percentages are hard coded for each shape in terminal.c
if v.shape == 'horizontal' then
eq(20, screen._mode_info[terminal_mode_idx].cell_percentage)
elseif v.shape == 'vertical' then
eq(25, screen._mode_info[terminal_mode_idx].cell_percentage)
end
end,
})
end