Changeset 57657 in webkit


Ignore:
Timestamp:
Apr 15, 2010 11:22:12 AM (14 years ago)
Author:
hyatt@apple.com
Message:

https://bugs.webkit.org/show_bug.cgi?id=37567, :first-letter inside a :visited link is wrong color. Make sure
that the pseudo style caching allows visited link styles to hang off other pseudo styles.

Reviewed by Anders Carlsson.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::updateFirstLetter):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::getCachedPseudoStyle):

Location:
trunk/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r57655 r57657  
     12010-04-15  David Hyatt  <hyatt@apple.com>
     2
     3        Reviewed by Anders Carlsson.
     4
     5        https://bugs.webkit.org/show_bug.cgi?id=37567, :first-letter inside a :visited link is wrong color.  Make sure
     6        that the pseudo style caching allows visited link styles to hang off other pseudo styles.
     7
     8        * rendering/RenderBlock.cpp:
     9        (WebCore::RenderBlock::updateFirstLetter):
     10        * rendering/style/RenderStyle.cpp:
     11        (WebCore::RenderStyle::getCachedPseudoStyle):
     12
    1132010-04-15  Ben Murdoch  <benm@google.com>
    214
  • trunk/WebCore/rendering/RenderBlock.cpp

    r57292 r57657  
    47334733            RenderTextFragment* letter =
    47344734                new (renderArena()) RenderTextFragment(remainingText->node() ? remainingText->node() : remainingText->document(), oldText.get(), 0, length);
    4735             RefPtr<RenderStyle> newStyle = RenderStyle::create();
    4736             newStyle->inheritFrom(pseudoStyle);
    4737             letter->setStyle(newStyle.release());
     4735            letter->setStyle(pseudoStyle);
    47384736            firstLetter->addChild(letter);
    47394737
  • trunk/WebCore/rendering/style/RenderStyle.cpp

    r57528 r57657  
    212212RenderStyle* RenderStyle::getCachedPseudoStyle(PseudoId pid) const
    213213{
    214     if (!m_cachedPseudoStyle || styleType() != NOPSEUDO)
     214    ASSERT(styleType() != VISITED_LINK);
     215
     216    if (!m_cachedPseudoStyle)
    215217        return 0;
     218
     219    if (styleType() != NOPSEUDO) {
     220        if (pid == VISITED_LINK)
     221            return m_cachedPseudoStyle->styleType() == VISITED_LINK ? m_cachedPseudoStyle.get() : 0;
     222        return 0;
     223    }
     224
    216225    RenderStyle* ps = m_cachedPseudoStyle.get();
    217226    while (ps && ps->styleType() != pid)
Note: See TracChangeset for help on using the changeset viewer.