diff options
Diffstat (limited to 'Source/WebCore/rendering/RenderView.cpp')
-rw-r--r-- | Source/WebCore/rendering/RenderView.cpp | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/Source/WebCore/rendering/RenderView.cpp b/Source/WebCore/rendering/RenderView.cpp index 8633104e3..aadb9b9b5 100644 --- a/Source/WebCore/rendering/RenderView.cpp +++ b/Source/WebCore/rendering/RenderView.cpp @@ -32,6 +32,7 @@ #include "HTMLFrameOwnerElement.h" #include "HitTestResult.h" #include "Page.h" +#include "RenderGeometryMap.h" #include "RenderLayer.h" #include "RenderNamedFlowThread.h" #include "RenderSelectionInfo.h" @@ -167,6 +168,27 @@ void RenderView::mapLocalToContainer(RenderBoxModelObject* repaintContainer, boo transformState.move(m_frameView->scrollOffsetForFixedPosition()); } +const RenderObject* RenderView::pushMappingToContainer(const RenderBoxModelObject* ancestorToStopAt, RenderGeometryMap& geometryMap) const +{ + // If a container was specified, and was not 0 or the RenderView, + // then we should have found it by now. + ASSERT_ARG(ancestorToStopAt, !ancestorToStopAt || ancestorToStopAt == this); + + LayoutSize scrollOffset; + + if (m_frameView) + scrollOffset = m_frameView->scrollOffsetForFixedPosition(); + + if (!ancestorToStopAt && shouldUseTransformFromContainer(0)) { + TransformationMatrix t; + getTransformFromContainer(0, LayoutSize(), t); + geometryMap.pushView(this, scrollOffset, &t); + } else + geometryMap.pushView(this, scrollOffset); + + return 0; +} + void RenderView::mapAbsoluteToLocalPoint(bool fixed, bool useTransforms, TransformState& transformState) const { if (fixed && m_frameView) @@ -733,10 +755,10 @@ LayoutRect RenderView::backgroundRect(RenderBox* backgroundRenderer) const IntRect RenderView::documentRect() const { - IntRect overflowRect(unscaledDocumentRect()); + FloatRect overflowRect(unscaledDocumentRect()); if (hasTransform()) overflowRect = layer()->currentTransform().mapRect(overflowRect); - return overflowRect; + return IntRect(overflowRect); } int RenderView::viewHeight() const |