diff --git a/Applications/Terminal/TerminalWidget.cpp b/Applications/Terminal/TerminalWidget.cpp index 070548e308..ad4be8cac4 100644 --- a/Applications/Terminal/TerminalWidget.cpp +++ b/Applications/Terminal/TerminalWidget.cpp @@ -407,6 +407,19 @@ void TerminalWidget::mouseup_event(GMouseEvent& event) GClipboard::the().set_data(selected_text()); } +void TerminalWidget::mousewheel_event(GMouseEvent& event) +{ + if (!is_scrollable()) + return; + m_scrollbar->set_value(m_scrollbar->value() + event.wheel_delta()); + GFrame::mousewheel_event(event); +} + +bool TerminalWidget::is_scrollable() const +{ + return m_scrollbar->is_scrollable(); +} + String TerminalWidget::selected_text() const { StringBuilder builder; diff --git a/Applications/Terminal/TerminalWidget.h b/Applications/Terminal/TerminalWidget.h index d9c048d5bc..e152bffde8 100644 --- a/Applications/Terminal/TerminalWidget.h +++ b/Applications/Terminal/TerminalWidget.h @@ -39,6 +39,8 @@ public: VT::Position normalized_selection_start() const; VT::Position normalized_selection_end() const; + bool is_scrollable() const; + private: // ^GWidget virtual void event(CEvent&) override; @@ -48,6 +50,7 @@ private: virtual void mousedown_event(GMouseEvent&) override; virtual void mousemove_event(GMouseEvent&) override; virtual void mouseup_event(GMouseEvent&) override; + virtual void mousewheel_event(GMouseEvent&) override; // ^TerminalClient virtual void beep() override;