+2011-01-16 Simon Fraser <simon.fraser@apple.com>
+
+ Reviewed by Dan Bernstein.
+
+ RenderView needs to take transforms on its layer into account
+ https://bugs.webkit.org/show_bug.cgi?id=52536
+
+ The RenderView's coordinate mapping methods failed to
+ take into account a transform on the RenderView's layer.
+
+ No tests because it's not possible to get a transform
+ on the RenderView's layer through content.
+
+ * rendering/RenderView.cpp:
+ (WebCore::RenderView::mapLocalToContainer):
+ (WebCore::RenderView::mapAbsoluteToLocalPoint):
+
2011-01-15 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r75708.
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)