diff --git a/metainfo.xml b/metainfo.xml
index 1f20807bb9..54280be6e5 100644
--- a/metainfo.xml
+++ b/metainfo.xml
@@ -114,6 +114,7 @@
Fixes statusline being misplaced after resize when being in alt screen (#1091).
Fixes hyperlinks with IDs (#1088)
Fixes hyperlink highlight when screen has been scrolled (#1084)
+ Fixes cursor shape changes when entering vi-like normal mode or visual mode.
Improves mouse selection to be more natural extending into new grid cells.
Modal mode: Improves how `[m` jumps from the current prompt to the next prompt above it.
Adds `profiles.*.permissions.display_host_writable_statusline` to allow the user to intervene in `DECSSDT 2` VT sequence to show the host writable statusline.
diff --git a/src/contour/Config.cpp b/src/contour/Config.cpp
index a1854765a7..f2dfee9e2d 100644
--- a/src/contour/Config.cpp
+++ b/src/contour/Config.cpp
@@ -620,9 +620,9 @@ namespace
return nullopt;
}
- optional parseCursorConfig(YAML::Node rootNode,
+ optional parseCursorConfig(YAML::Node const& rootNode,
UsedKeys& usedKeys,
- std::string basePath)
+ std::string const& basePath)
{
if (!rootNode)
return nullopt;
@@ -1693,7 +1693,7 @@ namespace
parseCursorConfig(visualModeNode["cursor"], _usedKeys, basePath + ".visual_mode.cursor"))
{
_usedKeys.emplace(basePath + ".visual_mode.cursor");
- profile.inputModes.normal.cursor = cursorOpt.value();
+ profile.inputModes.visual.cursor = cursorOpt.value();
}
}
diff --git a/src/contour/TerminalSession.cpp b/src/contour/TerminalSession.cpp
index 6e78c9925d..b435f6f089 100644
--- a/src/contour/TerminalSession.cpp
+++ b/src/contour/TerminalSession.cpp
@@ -1190,6 +1190,10 @@ void TerminalSession::configureCursor(config::CursorConfig const& cursorConfig)
terminal_.setCursorBlinkingInterval(cursorConfig.cursorBlinkInterval);
terminal_.setCursorDisplay(cursorConfig.cursorDisplay);
terminal_.setCursorShape(cursorConfig.cursorShape);
+
+ // Force a redraw of the screen
+ // to ensure the correct cursor shape is displayed.
+ scheduleRedraw();
}
void TerminalSession::configureDisplay()