summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/RenderBlockLineLayout.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/rendering/RenderBlockLineLayout.cpp')
-rwxr-xr-xSource/WebCore/rendering/RenderBlockLineLayout.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/Source/WebCore/rendering/RenderBlockLineLayout.cpp b/Source/WebCore/rendering/RenderBlockLineLayout.cpp
index 6394a6db4..cbcc988aa 100755
--- a/Source/WebCore/rendering/RenderBlockLineLayout.cpp
+++ b/Source/WebCore/rendering/RenderBlockLineLayout.cpp
@@ -1275,6 +1275,7 @@ void RenderBlock::layoutRunsAndFloats(LineLayoutState& layoutState, bool hasInli
RenderBlock::RenderTextInfo::RenderTextInfo()
: m_text(0)
+ , m_font(0)
{
}
@@ -2436,9 +2437,14 @@ InlineIterator RenderBlock::LineBreaker::nextLineBreak(InlineBidiResolver& resol
if (renderTextInfo.m_text != t) {
t->updateTextIfNeeded();
renderTextInfo.m_text = t;
+ renderTextInfo.m_font = &f;
renderTextInfo.m_layout = f.createLayout(t, width.currentWidth(), collapseWhiteSpace);
renderTextInfo.m_lineBreakIterator.reset(t->characters(), t->textLength(), style->locale());
+ } else if (renderTextInfo.m_layout && renderTextInfo.m_font != &f) {
+ renderTextInfo.m_font = &f;
+ renderTextInfo.m_layout = f.createLayout(t, width.currentWidth(), collapseWhiteSpace);
}
+
TextLayout* textLayout = renderTextInfo.m_layout.get();
for (; current.m_pos < t->textLength(); current.fastIncrementInTextNode()) {