diff --git a/Libraries/LibVT/TerminalWidget.cpp b/Libraries/LibVT/TerminalWidget.cpp index d00caca5f5..3cd0957b4a 100644 --- a/Libraries/LibVT/TerminalWidget.cpp +++ b/Libraries/LibVT/TerminalWidget.cpp @@ -644,6 +644,10 @@ void TerminalWidget::mousemove_event(GUI::MouseEvent& event) if (attribute.href_id != m_hovered_href_id) { m_hovered_href_id = attribute.href_id; m_hovered_href = attribute.href; + if (!m_hovered_href.is_empty()) + window()->set_override_cursor(GUI::StandardCursor::Hand); + else + window()->set_override_cursor(GUI::StandardCursor::None); update(); } @@ -656,6 +660,16 @@ void TerminalWidget::mousemove_event(GUI::MouseEvent& event) update(); } +void TerminalWidget::leave_event(Core::Event&) +{ + window()->set_override_cursor(GUI::StandardCursor::None); + bool should_update = !m_hovered_href.is_empty(); + m_hovered_href = {}; + m_hovered_href_id = {}; + if (should_update) + update(); +} + void TerminalWidget::mousewheel_event(GUI::MouseEvent& event) { if (!is_scrollable()) diff --git a/Libraries/LibVT/TerminalWidget.h b/Libraries/LibVT/TerminalWidget.h index 36f5bdcf4b..4d5085f6da 100644 --- a/Libraries/LibVT/TerminalWidget.h +++ b/Libraries/LibVT/TerminalWidget.h @@ -101,6 +101,7 @@ private: virtual void focusout_event(Core::Event&) override; virtual void context_menu_event(GUI::ContextMenuEvent&) override; virtual void drop_event(GUI::DropEvent&) override; + virtual void leave_event(Core::Event&) override; virtual void did_change_font() override; // ^TerminalClient