aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/terminal.c2
-rw-r--r--test/functional/terminal/cursor_spec.lua10
2 files changed, 11 insertions, 1 deletions
diff --git a/src/nvim/terminal.c b/src/nvim/terminal.c
index 61eede5ae1..673a6ef4be 100644
--- a/src/nvim/terminal.c
+++ b/src/nvim/terminal.c
@@ -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;
}
diff --git a/test/functional/terminal/cursor_spec.lua b/test/functional/terminal/cursor_spec.lua
index 8594a9ce16..12a20ddc0d 100644
--- a/test/functional/terminal/cursor_spec.lua
+++ b/test/functional/terminal/cursor_spec.lua
@@ -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