summaryrefslogtreecommitdiff
path: root/Libraries
diff options
context:
space:
mode:
Diffstat (limited to 'Libraries')
-rw-r--r--Libraries/LibGUI/GScrollableWidget.cpp8
-rw-r--r--Libraries/LibGUI/GScrollableWidget.h2
2 files changed, 10 insertions, 0 deletions
diff --git a/Libraries/LibGUI/GScrollableWidget.cpp b/Libraries/LibGUI/GScrollableWidget.cpp
index 246158d9f4..e9fb3bc464 100644
--- a/Libraries/LibGUI/GScrollableWidget.cpp
+++ b/Libraries/LibGUI/GScrollableWidget.cpp
@@ -180,3 +180,11 @@ Rect GScrollableWidget::widget_inner_rect() const
rect.set_height(rect.height() - height_occupied_by_horizontal_scrollbar());
return rect;
}
+
+Point GScrollableWidget::to_content_position(const Point& widget_position) const
+{
+ auto content_position = widget_position;
+ content_position.move_by(horizontal_scrollbar().value(), vertical_scrollbar().value());
+ content_position.move_by(-frame_thickness(), -frame_thickness());
+ return content_position;
+}
diff --git a/Libraries/LibGUI/GScrollableWidget.h b/Libraries/LibGUI/GScrollableWidget.h
index dbef80042a..a5231cc456 100644
--- a/Libraries/LibGUI/GScrollableWidget.h
+++ b/Libraries/LibGUI/GScrollableWidget.h
@@ -41,6 +41,8 @@ public:
void set_should_hide_unnecessary_scrollbars(bool b) { m_should_hide_unnecessary_scrollbars = b; }
bool should_hide_unnecessary_scrollbars() const { return m_should_hide_unnecessary_scrollbars; }
+ Point to_content_position(const Point& widget_position) const;
+
protected:
explicit GScrollableWidget(GWidget* parent);
virtual void custom_layout() override;