summaryrefslogtreecommitdiff
path: root/src/terminal_ui.cc
diff options
context:
space:
mode:
authorYukai Huang <yukaihuangtw@gmail.com>2025-06-28 11:22:21 +0800
committerYukai Huang <yukaihuangtw@gmail.com>2025-06-28 11:22:21 +0800
commit883a6cb987a4fa3fd040bb865f24d23d1ff4622e (patch)
tree649d3be6257b0d7638cf8fc30243a64ae8ee0e69 /src/terminal_ui.cc
parent38a7a49ae85789f3b2aaaf7e263d6eabdccdf046 (diff)
Revert "chore: remove terminal option"
This reverts commit 549a5d2c223d422390795741537b150b492a3935.
Diffstat (limited to 'src/terminal_ui.cc')
-rw-r--r--src/terminal_ui.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/terminal_ui.cc b/src/terminal_ui.cc
index e5eb6c26..c5562a4c 100644
--- a/src/terminal_ui.cc
+++ b/src/terminal_ui.cc
@@ -1574,9 +1574,14 @@ void TerminalUI::set_ui_options(const Options& options)
m_padding_char = find("terminal_padding_char").map([](StringView s) { return s.column_length() < 1 ? ' ' : s[0_char]; }).value_or(Codepoint{'~'});
m_padding_fill = find("terminal_padding_fill").map(to_bool).value_or(false);
-
- // Emit cursor show sequence
- write(STDOUT_FILENO, "\033[?25h");
+
+ bool new_cursor_native = find("terminal_cursor_native").map(to_bool).value_or(false);
+ if (new_cursor_native != m_terminal_cursor_native)
+ {
+ m_terminal_cursor_native = new_cursor_native;
+ // Emit cursor visibility command when the option changes
+ write(STDOUT_FILENO, m_terminal_cursor_native ? "\033[?25h" : "\033[?25l");
+ }
m_info_max_width = find("terminal_info_max_width").map(str_to_int_ifp).value_or(0);
}