summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/RenderView.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/rendering/RenderView.cpp')
-rw-r--r--Source/WebCore/rendering/RenderView.cpp26
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