diff --git a/Libraries/LibGUI/GScrollableWidget.cpp b/Libraries/LibGUI/GScrollableWidget.cpp index e9fb3bc464..e1d78aa98a 100644 --- a/Libraries/LibGUI/GScrollableWidget.cpp +++ b/Libraries/LibGUI/GScrollableWidget.cpp @@ -188,3 +188,11 @@ Point GScrollableWidget::to_content_position(const Point& widget_position) const content_position.move_by(-frame_thickness(), -frame_thickness()); return content_position; } + +Point GScrollableWidget::to_widget_position(const Point& content_position) const +{ + auto widget_position = content_position; + widget_position.move_by(-horizontal_scrollbar().value(), -vertical_scrollbar().value()); + widget_position.move_by(frame_thickness(), frame_thickness()); + return widget_position; +} diff --git a/Libraries/LibGUI/GScrollableWidget.h b/Libraries/LibGUI/GScrollableWidget.h index a5231cc456..d1fc8f8ecd 100644 --- a/Libraries/LibGUI/GScrollableWidget.h +++ b/Libraries/LibGUI/GScrollableWidget.h @@ -42,6 +42,7 @@ public: bool should_hide_unnecessary_scrollbars() const { return m_should_hide_unnecessary_scrollbars; } Point to_content_position(const Point& widget_position) const; + Point to_widget_position(const Point& content_position) const; protected: explicit GScrollableWidget(GWidget* parent);