diff options
| author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-27 21:51:42 +0200 |
|---|---|---|
| committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-27 21:51:42 +0200 |
| commit | be01689f43cf6882cf670d33df49ead1f570c53a (patch) | |
| tree | 4bb2161d8983b38e3e7ed37b4a50303bfd5e2e85 /Source/WebCore/rendering/RenderView.cpp | |
| parent | a89b2ebb8e192c5e8cea21079bda2ee2c0c7dddd (diff) | |
| download | qtwebkit-be01689f43cf6882cf670d33df49ead1f570c53a.tar.gz | |
Imported WebKit commit 8d6c5efc74f0222dfc7bcce8d845d4a2707ed9e6 (http://svn.webkit.org/repository/webkit/trunk@118629)
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 |
