Title: [115134] trunk
Revision
115134
Author
[email protected]
Date
2012-04-24 16:43:46 -0700 (Tue, 24 Apr 2012)

Log Message

Fixed background is scrolling in http://www.nieuwecode.nl/ in Qt webkit2
https://bugs.webkit.org/show_bug.cgi?id=83980

Reviewed by Simon Fraser.

.: 

* ManualTests/fixed-position-no-z-index.html: Added.

Source/WebCore: 

When a fixed position element does not have z-index explicitly specified, it does not create a
stacking context. This results in fixed elements scrolling with the content layer.
This patch creates a stacking context for fixed positioned elements for the Qt port, by enabling
the flag ENABLE_FIXED_POSITION_CREATES_STACKING_CONTEXT.
Added a manual test because this patch takes effect only during scrolling.

* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::collectMatchingRulesForList):

Modified Paths

Added Paths

Diff

Modified: trunk/ChangeLog (115133 => 115134)


--- trunk/ChangeLog	2012-04-24 23:43:13 UTC (rev 115133)
+++ trunk/ChangeLog	2012-04-24 23:43:46 UTC (rev 115134)
@@ -1,3 +1,12 @@
+2012-04-24  Yael Aharon  <[email protected]>
+
+        Fixed background is scrolling in http://www.nieuwecode.nl/ in Qt webkit2
+        https://bugs.webkit.org/show_bug.cgi?id=83980
+
+        Reviewed by Simon Fraser.
+
+        * ManualTests/fixed-position-no-z-index.html: Added.
+
 2012-04-24  Carlos Garcia Campos  <[email protected]>
 
         [GTK] Build and run TestWebKitAPI unit tests

Added: trunk/ManualTests/fixed-position-no-z-index.html (0 => 115134)


--- trunk/ManualTests/fixed-position-no-z-index.html	                        (rev 0)
+++ trunk/ManualTests/fixed-position-no-z-index.html	2012-04-24 23:43:46 UTC (rev 115134)
@@ -0,0 +1,25 @@
+<html>
+<head>
+<style>
+.back { z-index: -1; position: absolute; width:1000px; height:1000px;}
+.d1 { position:fixed; top:0; left:0; width:1000px; height:1000px;}
+.d2 { margin: 30px 40% 20px 20%;  position: relative; z-index: 5;}
+body { margin: 0px; }
+</style>
+</head>
+<body>
+<div class="d1"><img class="back" src=""
+</div>
+<div class="d2">
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.<br>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.<br>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.<br>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.<br>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.<br>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.<br>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.<br>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.<br>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.<br>
+
+</div>
+</body></html>

Modified: trunk/Source/WebCore/ChangeLog (115133 => 115134)


--- trunk/Source/WebCore/ChangeLog	2012-04-24 23:43:13 UTC (rev 115133)
+++ trunk/Source/WebCore/ChangeLog	2012-04-24 23:43:46 UTC (rev 115134)
@@ -1,3 +1,19 @@
+2012-04-24  Yael Aharon  <[email protected]>
+
+        Fixed background is scrolling in http://www.nieuwecode.nl/ in Qt webkit2
+        https://bugs.webkit.org/show_bug.cgi?id=83980
+
+        Reviewed by Simon Fraser.
+
+        When a fixed position element does not have z-index explicitly specified, it does not create a
+        stacking context. This results in fixed elements scrolling with the content layer.
+        This patch creates a stacking context for fixed positioned elements for the Qt port, by enabling
+        the flag ENABLE_FIXED_POSITION_CREATES_STACKING_CONTEXT.
+        Added a manual test because this patch takes effect only during scrolling.
+
+        * css/CSSStyleSelector.cpp:
+        (WebCore::CSSStyleSelector::collectMatchingRulesForList):
+
 2012-04-24  Andreas Kling  <[email protected]>
 
         REGRESSION(r115099): html5lib/runner.html crashes.

Modified: trunk/Source/WebCore/css/CSSStyleSelector.cpp (115133 => 115134)


--- trunk/Source/WebCore/css/CSSStyleSelector.cpp	2012-04-24 23:43:13 UTC (rev 115133)
+++ trunk/Source/WebCore/css/CSSStyleSelector.cpp	2012-04-24 23:43:46 UTC (rev 115134)
@@ -148,6 +148,10 @@
 #include "StyleCachedImageSet.h"
 #endif
 
+#if PLATFORM(QT)
+#define FIXED_POSITION_CREATES_STACKING_CONTEXT 1
+#endif
+
 using namespace std;
 
 namespace WebCore {
@@ -2007,6 +2011,9 @@
     // object wedged in between them.  Auto z-index also becomes 0 for objects that specify transforms/masks/reflections.
     if (style->hasAutoZIndex() && ((e && e->document()->documentElement() == e) || style->opacity() < 1.0f
         || style->hasTransformRelatedProperty() || style->hasMask() || style->boxReflect() || style->hasFilter()
+#ifdef FIXED_POSITION_CREATES_STACKING_CONTEXT
+        || style->position() == FixedPosition
+#endif
 #if ENABLE(OVERFLOW_SCROLLING)
         // Touch overflow scrolling creates a stacking context.
         || style->useTouchOverflowScrolling()
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to