diff options
Diffstat (limited to 'Source/WebCore/rendering/RenderTextFragment.cpp')
-rw-r--r-- | Source/WebCore/rendering/RenderTextFragment.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/Source/WebCore/rendering/RenderTextFragment.cpp b/Source/WebCore/rendering/RenderTextFragment.cpp index fd067c897..8c74aa73e 100644 --- a/Source/WebCore/rendering/RenderTextFragment.cpp +++ b/Source/WebCore/rendering/RenderTextFragment.cpp @@ -25,6 +25,7 @@ #include "RenderBlock.h" #include "RenderIterator.h" +#include "RenderMultiColumnFlowThread.h" #include "Text.h" namespace WebCore { @@ -68,7 +69,7 @@ void RenderTextFragment::styleDidChange(StyleDifference diff, const RenderStyle* RenderText::styleDidChange(diff, oldStyle); if (RenderBlock* block = blockForAccompanyingFirstLetter()) { - block->style().removeCachedPseudoStyle(FIRST_LETTER); + block->mutableStyle().removeCachedPseudoStyle(FIRST_LETTER); block->updateFirstLetter(); } } @@ -88,7 +89,6 @@ void RenderTextFragment::setText(const String& text, bool force) m_end = textLength(); if (!m_firstLetter) return; - ASSERT(!m_contentString); m_firstLetter->destroy(); m_firstLetter = 0; if (!textNode()) @@ -113,10 +113,18 @@ RenderBlock* RenderTextFragment::blockForAccompanyingFirstLetter() if (!m_firstLetter) return nullptr; for (auto& block : ancestorsOfType<RenderBlock>(*m_firstLetter)) { + if (is<RenderMultiColumnFlowThread>(block)) + break; if (block.style().hasPseudoStyle(FIRST_LETTER) && block.canHaveChildren()) return █ } return nullptr; } +void RenderTextFragment::setContentString(const String& text) +{ + m_contentString = text; + setText(text); +} + } // namespace WebCore |