diff options
Diffstat (limited to 'Source/WebCore/rendering/RenderBlock.cpp')
-rw-r--r-- | Source/WebCore/rendering/RenderBlock.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/Source/WebCore/rendering/RenderBlock.cpp b/Source/WebCore/rendering/RenderBlock.cpp index 49dd169..7a6ec82 100644 --- a/Source/WebCore/rendering/RenderBlock.cpp +++ b/Source/WebCore/rendering/RenderBlock.cpp @@ -5380,21 +5380,23 @@ void RenderBlock::updateFirstLetter() // 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; |