diff options
Diffstat (limited to 'Source/WebCore/rendering/RenderView.cpp')
-rw-r--r-- | Source/WebCore/rendering/RenderView.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/Source/WebCore/rendering/RenderView.cpp b/Source/WebCore/rendering/RenderView.cpp index 6820e34..687ba85 100644 --- a/Source/WebCore/rendering/RenderView.cpp +++ b/Source/WebCore/rendering/RenderView.cpp @@ -147,20 +147,32 @@ void RenderView::layout() setNeedsLayout(false); } -void RenderView::mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool fixed, bool /*useTransforms*/, TransformState& transformState) const +void RenderView::mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool fixed, bool useTransforms, TransformState& transformState) const { // If a container was specified, and was not 0 or the RenderView, // then we should have found it by now. ASSERT_UNUSED(repaintContainer, !repaintContainer || repaintContainer == this); + if (useTransforms && shouldUseTransformFromContainer(0)) { + TransformationMatrix t; + getTransformFromContainer(0, IntSize(), t); + transformState.applyTransform(t); + } + if (fixed && m_frameView) transformState.move(m_frameView->scrollOffset()); } -void RenderView::mapAbsoluteToLocalPoint(bool fixed, bool /*useTransforms*/, TransformState& transformState) const +void RenderView::mapAbsoluteToLocalPoint(bool fixed, bool useTransforms, TransformState& transformState) const { if (fixed && m_frameView) transformState.move(-m_frameView->scrollOffset()); + + if (useTransforms && shouldUseTransformFromContainer(0)) { + TransformationMatrix t; + getTransformFromContainer(0, IntSize(), t); + transformState.applyTransform(t); + } } void RenderView::paint(PaintInfo& paintInfo, int tx, int ty) |