1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 04:57:45 +00:00

LibVT+Kernel: Add support for setting cursor styles

This commit introduces support for 3 new escape sequences:
1. Stop blinking cursor mode
2. `DECTCEM` mode (enable/disable cursor)
3. `DECSCUSR` (set cursor style)

`TerminalWidget` now supports the following cursor types: block,
underline and vertical bar. Each of these can blink or be steady.
`VirtualConsole` ignores these (just as we were doing before).
This commit is contained in:
Daniel Bertalan 2021-05-24 09:36:41 +02:00 committed by Andreas Kling
parent 7dfc804d7d
commit 875a2cbb71
6 changed files with 162 additions and 14 deletions

View file

@ -114,6 +114,7 @@ private:
virtual void terminal_did_resize(u16 columns, u16 rows) override;
virtual void terminal_history_changed() override;
virtual void emit(const u8*, size_t) override;
virtual void set_cursor_style(CursorStyle) override;
void set_logical_focus(bool);
@ -173,6 +174,8 @@ private:
bool m_cursor_blink_state { true };
bool m_automatic_size_policy { false };
VT::CursorStyle m_cursor_style { BlinkingBlock };
enum class AutoScrollDirection {
None,
Up,