aboutsummaryrefslogtreecommitdiff
path: root/src/ui/render/ScrollRenderObject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/render/ScrollRenderObject.cpp')
-rw-r--r--src/ui/render/ScrollRenderObject.cpp23
1 files changed, 10 insertions, 13 deletions
diff --git a/src/ui/render/ScrollRenderObject.cpp b/src/ui/render/ScrollRenderObject.cpp
index 4d359a86..1d12c7d0 100644
--- a/src/ui/render/ScrollRenderObject.cpp
+++ b/src/ui/render/ScrollRenderObject.cpp
@@ -82,19 +82,6 @@ RenderObject* ScrollRenderObject::HitTest(const Point& point) {
return rect.IsPointInside(point) ? this : nullptr;
} // namespace cru::ui::render
-void ScrollRenderObject::Draw(platform::graphics::IPainter* painter) {
- if (auto child = GetChild()) {
- painter->PushLayer(this->GetContentRect());
- const auto offset = child->GetOffset();
- painter->PushState();
- painter->ConcatTransform(Matrix::Translation(offset));
- child->Draw(painter);
- painter->PopState();
- painter->PopLayer();
- }
- scroll_bar_delegate_->DrawScrollBar(painter);
-}
-
Point ScrollRenderObject::GetScrollOffset() {
if (auto child = GetChild()) {
return CoerceScroll(scroll_offset_, GetContentRect().GetSize(),
@@ -184,6 +171,16 @@ void ScrollRenderObject::OnLayoutContent(const Rect& content_rect) {
}
}
+void ScrollRenderObject::OnDraw(RenderObjectDrawContext& context) {
+ auto painter = context.painter;
+ if (auto child = GetChild()) {
+ painter->PushLayer(this->GetContentRect());
+ context.DrawChild(child);
+ painter->PopLayer();
+ }
+ scroll_bar_delegate_->DrawScrollBar(painter);
+}
+
void ScrollRenderObject::OnAttachedControlChanged(
controls::Control* old_control, controls::Control* new_control) {
if (new_control) {