summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/RenderGeometryMap.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-06-01 10:36:58 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-06-01 10:36:58 +0200
commitb1e9e47fa11f608ae16bc07f97a2acf95bf80272 (patch)
treec88c45e80c9c44506e7cdf9a3bb39ebf82a8cd5b /Source/WebCore/rendering/RenderGeometryMap.cpp
parentbe01689f43cf6882cf670d33df49ead1f570c53a (diff)
downloadqtwebkit-b1e9e47fa11f608ae16bc07f97a2acf95bf80272.tar.gz
Imported WebKit commit 499c84c99aa98e9870fa7eaa57db476c6d160d46 (http://svn.webkit.org/repository/webkit/trunk@119200)
Weekly update :). Particularly relevant changes for Qt are the use of the WebCore image decoders and direct usage of libpng/libjpeg if available in the system.
Diffstat (limited to 'Source/WebCore/rendering/RenderGeometryMap.cpp')
-rw-r--r--Source/WebCore/rendering/RenderGeometryMap.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/Source/WebCore/rendering/RenderGeometryMap.cpp b/Source/WebCore/rendering/RenderGeometryMap.cpp
index 65f189bb1..77e04855d 100644
--- a/Source/WebCore/rendering/RenderGeometryMap.cpp
+++ b/Source/WebCore/rendering/RenderGeometryMap.cpp
@@ -143,12 +143,13 @@ void RenderGeometryMap::mapToAbsolute(TransformState& transformState) const
for (int i = m_mapping.size() - 1; i >= 0; --i) {
const RenderGeometryMapStep* currStep = m_mapping[i].get();
- if (currStep->m_hasTransform) {
- // If this box has a transform, it acts as a fixed position container for fixed descendants,
- // and may itself also be fixed position. So propagate 'fixed' up only if this box is fixed position.
- inFixed &= currStep->m_isFixedPosition;
- } else
- inFixed |= currStep->m_isFixedPosition;
+ // If this box has a transform, it acts as a fixed position container
+ // for fixed descendants, which prevents the propagation of 'fixed'
+ // unless the layer itself is also fixed position.
+ if (currStep->m_hasTransform && !currStep->m_isFixedPosition)
+ inFixed = false;
+ else if (currStep->m_isFixedPosition)
+ inFixed = true;
if (!i) {
if (currStep->m_transform)