diff --git a/kernel/include/kernel/Terminal/VirtualTTY.h b/kernel/include/kernel/Terminal/VirtualTTY.h index d4f3cf0211..42bffa9d24 100644 --- a/kernel/include/kernel/Terminal/VirtualTTY.h +++ b/kernel/include/kernel/Terminal/VirtualTTY.h @@ -94,6 +94,10 @@ namespace Kernel uint32_t m_column { 0 }; Cell* m_buffer { nullptr }; + bool m_last_cursor_shown { false }; + uint32_t m_last_cursor_row { static_cast(-1) }; + uint32_t m_last_cursor_column { static_cast(-1) }; + const Palette& m_palette; TerminalDriver::Color m_foreground; diff --git a/kernel/kernel/Terminal/VirtualTTY.cpp b/kernel/kernel/Terminal/VirtualTTY.cpp index f11a229009..29b3aeb3ca 100644 --- a/kernel/kernel/Terminal/VirtualTTY.cpp +++ b/kernel/kernel/Terminal/VirtualTTY.cpp @@ -571,17 +571,14 @@ namespace Kernel void VirtualTTY::update_cursor() { - static bool last_shown = !m_cursor_shown; - if (m_cursor_shown != last_shown) + if (m_cursor_shown != m_last_cursor_shown) m_terminal_driver->set_cursor_shown(m_cursor_shown); - last_shown = m_cursor_shown; + m_last_cursor_shown = m_cursor_shown; - static uint32_t last_column = -1; - static uint32_t last_row = -1; - if (last_column != m_column || last_row != m_row) + if (m_last_cursor_column != m_column || m_last_cursor_row != m_row) m_terminal_driver->set_cursor_position(m_column, m_row); - last_column = m_column; - last_row = m_row; + m_last_cursor_column = m_column; + m_last_cursor_row = m_row; } }