Title: [96294] trunk
Revision
96294
Author
[email protected]
Date
2011-09-28 21:12:42 -0700 (Wed, 28 Sep 2011)

Log Message

<rdar://problem/10196497> first-letter after list marker not updated correctly

Reviewed by Simon Fraser.

Source/WebCore: 

Test: fast/dynamic/first-letter-after-list-marker.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateFirstLetter): Improved the logic for continuing past list markers
when trying to locate a first letter to update.

LayoutTests: 

* fast/dynamic/first-letter-after-list-marker-expected.png: Added.
* fast/dynamic/first-letter-after-list-marker-expected.txt: Added.
* fast/dynamic/first-letter-after-list-marker.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (96293 => 96294)


--- trunk/LayoutTests/ChangeLog	2011-09-29 04:00:01 UTC (rev 96293)
+++ trunk/LayoutTests/ChangeLog	2011-09-29 04:12:42 UTC (rev 96294)
@@ -1,3 +1,13 @@
+2011-09-28  Dan Bernstein  <[email protected]>
+
+        <rdar://problem/10196497> first-letter after list marker not updated correctly
+
+        Reviewed by Simon Fraser.
+
+        * fast/dynamic/first-letter-after-list-marker-expected.png: Added.
+        * fast/dynamic/first-letter-after-list-marker-expected.txt: Added.
+        * fast/dynamic/first-letter-after-list-marker.html: Added.
+
 2011-09-28  Hayato Ito  <[email protected]>
 
         Add a test for accesskey in regard to iframes.

Added: trunk/LayoutTests/fast/dynamic/first-letter-after-list-marker-expected.png


(Binary files differ)
Property changes on: trunk/LayoutTests/fast/dynamic/first-letter-after-list-marker-expected.png ___________________________________________________________________

Added: svn:mime-type

Added: trunk/LayoutTests/fast/dynamic/first-letter-after-list-marker-expected.txt (0 => 96294)


--- trunk/LayoutTests/fast/dynamic/first-letter-after-list-marker-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/dynamic/first-letter-after-list-marker-expected.txt	2011-09-29 04:12:42 UTC (rev 96294)
@@ -0,0 +1,12 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+    RenderBody {BODY} at (8,8) size 784x492
+      RenderBlock {UL} at (0,0) size 784x100
+        RenderListItem {LI} at (40,0) size 744x100
+          RenderListMarker at (-61,0) size 29x100: bullet
+          RenderInline (generated) at (0,0) size 100x100 [color=#008000]
+            RenderText {#text} at (0,0) size 100x100
+              text run at (0,0) width 100: "a"
+          RenderText {#text} at (0,0) size 0x0

Added: trunk/LayoutTests/fast/dynamic/first-letter-after-list-marker.html (0 => 96294)


--- trunk/LayoutTests/fast/dynamic/first-letter-after-list-marker.html	                        (rev 0)
+++ trunk/LayoutTests/fast/dynamic/first-letter-after-list-marker.html	2011-09-29 04:12:42 UTC (rev 96294)
@@ -0,0 +1,11 @@
+<style>
+    li:first-letter { color: red; }
+    li.green:first-letter { color: green; }
+</style>
+<ul style="font-family: ahem; font-size: 100px; -webkit-font-smoothing: none;">
+    <li id="target">a</li>
+</ul>
+<script>
+    document.body.offsetTop;
+    document.getElementById("target").className = "green";
+</script>

Modified: trunk/Source/WebCore/ChangeLog (96293 => 96294)


--- trunk/Source/WebCore/ChangeLog	2011-09-29 04:00:01 UTC (rev 96293)
+++ trunk/Source/WebCore/ChangeLog	2011-09-29 04:12:42 UTC (rev 96294)
@@ -1,3 +1,15 @@
+2011-09-28  Dan Bernstein  <[email protected]>
+
+        <rdar://problem/10196497> first-letter after list marker not updated correctly
+
+        Reviewed by Simon Fraser.
+
+        Test: fast/dynamic/first-letter-after-list-marker.html
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::updateFirstLetter): Improved the logic for continuing past list markers
+        when trying to locate a first letter to update.
+
 2011-09-28  Kent Tamura  <[email protected]>
 
         REGRESSION(r93858): Can't type anything into input elements when maxlength is greater than 2^31

Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (96293 => 96294)


--- trunk/Source/WebCore/rendering/RenderBlock.cpp	2011-09-29 04:00:01 UTC (rev 96293)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp	2011-09-29 04:12:42 UTC (rev 96294)
@@ -5480,21 +5480,23 @@
 
     // Drill into inlines looking for our first text child.
     RenderObject* currChild = firstLetterBlock->firstChild();
-    while (currChild && ((!currChild->isReplaced() && !currChild->isRenderButton() && !currChild->isMenuList()) || currChild->isFloatingOrPositioned()) && !currChild->isText()) {
-        if (currChild->isFloatingOrPositioned()) {
+    while (currChild) {
+        if (currChild->isText())
+            break;
+        if (currChild->isListMarker())
+            currChild = currChild->nextSibling();
+        else if (currChild->isFloatingOrPositioned()) {
             if (currChild->style()->styleType() == FIRST_LETTER) {
                 currChild = currChild->firstChild();
                 break;
-            } 
+            }
             currChild = currChild->nextSibling();
-        } else
+        } else if (currChild->isReplaced() || currChild->isRenderButton() || currChild->isMenuList())
+            break;
+        else
             currChild = currChild->firstChild();
     }
 
-    // Get list markers out of the way.
-    while (currChild && currChild->isListMarker())
-        currChild = currChild->nextSibling();
-
     if (!currChild)
         return;
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to