diff options
Diffstat (limited to 'src/ui/render/ScrollRenderObject.cpp')
| -rw-r--r-- | src/ui/render/ScrollRenderObject.cpp | 23 |
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) { |
