From a6d16e8cbb263426f6c0053758812ae3c54fda56 Mon Sep 17 00:00:00 2001 From: Janne Valkealahti Date: Fri, 12 Jan 2024 15:41:46 +0000 Subject: [PATCH] Restore cursor using normal capability - Looks like some infocmp capabilities for making cursor visible using cvvis doesn't always work. So change to use cnorm instead. - Terminal instruction of making cursor very visible with cvvis doesn't mean cursor should be visible, afaik, so i.e. screen or tmux didn't work. - Fixes #970 --- .../shell/component/support/AbstractComponent.java | 2 +- .../org/springframework/shell/component/view/TerminalUI.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/spring-shell-core/src/main/java/org/springframework/shell/component/support/AbstractComponent.java b/spring-shell-core/src/main/java/org/springframework/shell/component/support/AbstractComponent.java index e12b29b2..2af895f2 100644 --- a/spring-shell-core/src/main/java/org/springframework/shell/component/support/AbstractComponent.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/component/support/AbstractComponent.java @@ -294,7 +294,7 @@ public abstract class AbstractComponent> implement finally { terminal.setAttributes(attr); terminal.puts(Capability.keypad_local); - terminal.puts(Capability.cursor_visible); + terminal.puts(Capability.cursor_normal); display.update(Collections.emptyList(), 0); } } diff --git a/spring-shell-core/src/main/java/org/springframework/shell/component/view/TerminalUI.java b/spring-shell-core/src/main/java/org/springframework/shell/component/view/TerminalUI.java index a4a05b06..da22bdae 100644 --- a/spring-shell-core/src/main/java/org/springframework/shell/component/view/TerminalUI.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/component/view/TerminalUI.java @@ -283,7 +283,7 @@ public class TerminalUI implements ViewService { int targetCursorPos = 0; if (virtualDisplay.isShowCursor()) { - terminal.puts(Capability.cursor_visible); + terminal.puts(Capability.cursor_normal); targetCursorPos = size.cursorPos(virtualDisplay.getCursorPosition().y(), virtualDisplay.getCursorPosition().x()); log.debug("Display targetCursorPos {}", targetCursorPos); } @@ -402,7 +402,7 @@ public class TerminalUI implements ViewService { eventLoop.destroy(); terminal.setAttributes(attr); log.debug("Setting cursor visible"); - terminal.puts(Capability.cursor_visible); + terminal.puts(Capability.cursor_normal); if (fullScreen) { display.update(Collections.emptyList(), 0); }