diff options
Diffstat (limited to 'src/terminal_ui.cc')
| -rw-r--r-- | src/terminal_ui.cc | 11 |
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); } |
