| Index: Source/core/layout/line/BreakingContextInlineHeaders.h
|
| diff --git a/Source/core/layout/line/BreakingContextInlineHeaders.h b/Source/core/layout/line/BreakingContextInlineHeaders.h
|
| index c255a686f1bfb6fa1167ee0c8492729ee58eb15c..8bcfd519b7fa1bfd48b2c87c2a68cf4733677571 100644
|
| --- a/Source/core/layout/line/BreakingContextInlineHeaders.h
|
| +++ b/Source/core/layout/line/BreakingContextInlineHeaders.h
|
| @@ -552,12 +552,14 @@ inline bool BreakingContext::handleText(WordMeasurements& wordMeasurements, bool
|
| bool breakWords = m_currentStyle->breakWords() && ((m_autoWrap && !m_width.committedWidth()) || m_currWS == PRE);
|
| bool midWordBreak = false;
|
| bool breakAll = m_currentStyle->wordBreak() == BreakAllWordBreak && m_autoWrap;
|
| + bool keepAll = m_currentStyle->wordBreak() == KeepAllWordBreak && m_autoWrap;
|
| bool prohibitBreakInside = m_currentStyle->hasTextCombine() && layoutText->isCombineText() && toLayoutTextCombine(layoutText)->isCombined();
|
| float hyphenWidth = 0;
|
|
|
| if (isSVGText) {
|
| breakWords = false;
|
| breakAll = false;
|
| + keepAll = false;
|
| }
|
|
|
| if (layoutText->isWordBreak()) {
|
| @@ -606,7 +608,7 @@ inline bool BreakingContext::handleText(WordMeasurements& wordMeasurements, bool
|
| }
|
|
|
| int nextBreakablePosition = m_current.nextBreakablePosition();
|
| - bool betweenWords = c == '\n' || (m_currWS != PRE && !m_atStart && m_renderTextInfo.m_lineBreakIterator.isBreakable(m_current.offset(), nextBreakablePosition, breakAll ? LineBreakType::BreakAll : LineBreakType::Normal));
|
| + bool betweenWords = c == '\n' || (m_currWS != PRE && !m_atStart && m_renderTextInfo.m_lineBreakIterator.isBreakable(m_current.offset(), nextBreakablePosition, breakAll ? LineBreakType::BreakAll : keepAll ? LineBreakType::KeepAll : LineBreakType::Normal));
|
| m_current.setNextBreakablePosition(nextBreakablePosition);
|
|
|
| if (betweenWords || midWordBreak) {
|
|
|