| Index: Source/core/rendering/RenderBlockLineLayout.cpp
|
| diff --git a/Source/core/rendering/RenderBlockLineLayout.cpp b/Source/core/rendering/RenderBlockLineLayout.cpp
|
| index 697da35d157b5637ab51317aa892024b9b35e4df..da0c20041e756f0475e95d6f44b6880677301bdd 100644
|
| --- a/Source/core/rendering/RenderBlockLineLayout.cpp
|
| +++ b/Source/core/rendering/RenderBlockLineLayout.cpp
|
| @@ -140,7 +140,7 @@ static bool parentIsConstructedOrHaveNext(InlineFlowBox* parentBox)
|
| return false;
|
| }
|
|
|
| -InlineFlowBox* RenderBlockFlow::createLineBoxes(RenderObject* obj, const LineInfo& lineInfo, InlineBox* childBox, bool startNewSegment)
|
| +InlineFlowBox* RenderBlockFlow::createLineBoxes(RenderObject* obj, const LineInfo& lineInfo, InlineBox* childBox)
|
| {
|
| // See if we have an unconstructed line box for this object that is also
|
| // the last item on the line.
|
| @@ -163,8 +163,7 @@ InlineFlowBox* RenderBlockFlow::createLineBoxes(RenderObject* obj, const LineInf
|
| // the same line (this can happen with very fancy language mixtures).
|
| bool constructedNewBox = false;
|
| bool allowedToConstructNewBox = !hasDefaultLineBoxContain || !inlineFlow || inlineFlow->alwaysCreateLineBoxes();
|
| - bool mustCreateBoxesToRoot = startNewSegment && !(parentBox && parentBox->isRootInlineBox());
|
| - bool canUseExistingParentBox = parentBox && !parentIsConstructedOrHaveNext(parentBox) && !mustCreateBoxesToRoot;
|
| + bool canUseExistingParentBox = parentBox && !parentIsConstructedOrHaveNext(parentBox);
|
| if (allowedToConstructNewBox && !canUseExistingParentBox) {
|
| // We need to make a new box for this render object. Once
|
| // made, we need to place it at the end of the current line.
|
| @@ -263,12 +262,10 @@ RootInlineBox* RenderBlockFlow::constructLine(BidiRunList<BidiRun>& bidiRuns, co
|
| // then we need to construct inline boxes as necessary to properly enclose the
|
| // run's inline box. Segments can only be siblings at the root level, as
|
| // they are positioned separately.
|
| - bool runStartsSegment = r->m_startsSegment;
|
| -
|
| - if (!parentBox || parentBox->renderer() != r->m_object->parent() || runStartsSegment)
|
| + if (!parentBox || parentBox->renderer() != r->m_object->parent()) {
|
| // Create new inline boxes all the way back to the appropriate insertion point.
|
| - parentBox = createLineBoxes(r->m_object->parent(), lineInfo, box, runStartsSegment);
|
| - else {
|
| + parentBox = createLineBoxes(r->m_object->parent(), lineInfo, box);
|
| + } else {
|
| // Append the inline box to this line.
|
| parentBox->addToLine(box);
|
| }
|
| @@ -511,9 +508,6 @@ static inline void computeExpansionForJustifiedText(BidiRun* firstRun, BidiRun*
|
|
|
| size_t i = 0;
|
| for (BidiRun* r = firstRun; r; r = r->next()) {
|
| - // This method is called once per segment, do not move past the current segment.
|
| - if (r->m_startsSegment)
|
| - break;
|
| if (!r->m_box || r == trailingSpaceRun)
|
| continue;
|
|
|
| @@ -640,10 +634,6 @@ BidiRun* RenderBlockFlow::computeInlineDirectionPositionsForSegment(RootInlineBo
|
|
|
| BidiRun* r = firstRun;
|
| for (; r; r = r->next()) {
|
| - // Once we have reached the start of the next segment, we have finished
|
| - // computing the positions for this segment's contents.
|
| - if (r->m_startsSegment)
|
| - break;
|
| if (!r->m_box || r->m_object->isOutOfFlowPositioned() || r->m_box->isLineBreak())
|
| continue; // Positioned objects are only participating to figure out their
|
| // correct static x position. They have no effect on the width.
|
|
|