Changeset 147513 in webkit


Ignore:
Timestamp:
Apr 2, 2013 6:32:24 PM (11 years ago)
Author:
commit-queue@webkit.org
Message:

Source/WebCore: [css3-text] Rendering -webkit-each-line value for text-indent from css3-text
https://bugs.webkit.org/show_bug.cgi?id=113259

Patch by Jaehun Lim <ljaehun.lim@samsung.com> on 2013-04-02
Reviewed by Levi Weintraub.

CSS3 TEXT introduces new value, "each-line" for text-indent.
Indentation affects the first line of the block container as well as each line
after a forced line break, but does not affect lines after a soft wrap break.

This patch is the rendering part to support each-line value for text-indent.
It's prefixed and guarded by CSS3_TEXT flag.

Test: fast/css3-text/css3-text-indent/text-indent-each-line.html

  • rendering/RenderBlock.h:

(WebCore::RenderBlock::availableLogicalWidthForLine):
(WebCore::RenderBlock::logicalRightOffsetForLine):
(WebCore::RenderBlock::logicalLeftOffsetForLine):
(WebCore::RenderBlock::startOffsetForLine):
(WebCore::RenderBlock::endOffsetForLine):
(WebCore::RenderBlock::pixelSnappedLogicalLeftOffsetForLine):
(WebCore::RenderBlock::pixelSnappedLogicalRightOffsetForLine):

Rename a parameter from firstLine to shouldIndentText.

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::LineWidth::LineWidth):
(WebCore::LineWidth::shouldIndentText): Return boolean according to m_shouldIndentText.
(WebCore::LineWidth::updateAvailableWidth):
(WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
(WebCore::LineWidth::fitBelowFloats):

Add enum IndentTextOrNot and m_shouldIndentText.
Use m_shouldIndentText instead of m_isFirstLine.

(WebCore::requiresIndent): Decide whether text indentation is required.
(WebCore::updateLogicalInlinePositions):
(WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak):

LayoutTests: [css3-text] Rendering -webkit-each-line value for text-indent from css3-text
https://bugs.webkit.org/show_bug.cgi?id=113259

CSS3 TEXT introduces new value, "each-line" for text-indent.
Indentation affects the first line of the block container as well as each line
after a forced line break, but does not affect lines after a soft wrap break.

Patch by Jaehun Lim <ljaehun.lim@samsung.com> on 2013-04-02
Reviewed by Levi Weintraub.

  • fast/css3-text/css3-text-indent/text-indent-each-line-expected.html: Added.
  • fast/css3-text/css3-text-indent/text-indent-each-line.html: Added.
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
Location:
trunk
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r147510 r147513  
     12013-04-02  Jaehun Lim  <ljaehun.lim@samsung.com>
     2
     3        [css3-text] Rendering -webkit-each-line value for text-indent from css3-text
     4        https://bugs.webkit.org/show_bug.cgi?id=113259
     5       
     6        CSS3 TEXT introduces new value, "each-line" for text-indent.
     7        Indentation affects the first line of the block container as well as each line
     8        after a forced line break, but does not affect lines after a soft wrap break.
     9
     10        Reviewed by Levi Weintraub.
     11
     12        * fast/css3-text/css3-text-indent/text-indent-each-line-expected.html: Added.
     13        * fast/css3-text/css3-text-indent/text-indent-each-line.html: Added.
     14        * platform/win/TestExpectations:
     15        * platform/wincairo/TestExpectations:
     16
    1172013-04-02  Dean Jackson  <dino@apple.com>
    218
  • trunk/LayoutTests/platform/win/TestExpectations

    r147492 r147513  
    25082508fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-color.html
    25092509fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-underline-position.html
    2510 fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent-inherited.html
    2511 fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent.html
     2510fast/css3-text/css3-text-indent [ Failure ]
    25122511
    25132512# Needs rebaseline.
  • trunk/LayoutTests/platform/wincairo/TestExpectations

    r147048 r147513  
    29842984fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last.html
    29852985fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-line.html
    2986 fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent-inherited.html
    2987 fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent.html
     2986fast/css3-text/css3-text-indent [ Failure ]
    29882987
    29892988# Spellchecker behavior tests.
  • trunk/Source/WebCore/ChangeLog

    r147506 r147513  
     12013-04-02  Jaehun Lim  <ljaehun.lim@samsung.com>
     2
     3        [css3-text] Rendering -webkit-each-line value for text-indent from css3-text
     4        https://bugs.webkit.org/show_bug.cgi?id=113259
     5
     6        Reviewed by Levi Weintraub.
     7
     8        CSS3 TEXT introduces new value, "each-line" for text-indent.
     9        Indentation affects the first line of the block container as well as each line
     10        after a forced line break, but does not affect lines after a soft wrap break.
     11
     12        This patch is the rendering part to support each-line value for text-indent.
     13        It's prefixed and guarded by CSS3_TEXT flag.
     14
     15        Test: fast/css3-text/css3-text-indent/text-indent-each-line.html
     16
     17        * rendering/RenderBlock.h:
     18        (WebCore::RenderBlock::availableLogicalWidthForLine):
     19        (WebCore::RenderBlock::logicalRightOffsetForLine):
     20        (WebCore::RenderBlock::logicalLeftOffsetForLine):
     21        (WebCore::RenderBlock::startOffsetForLine):
     22        (WebCore::RenderBlock::endOffsetForLine):
     23        (WebCore::RenderBlock::pixelSnappedLogicalLeftOffsetForLine):
     24        (WebCore::RenderBlock::pixelSnappedLogicalRightOffsetForLine):
     25            Rename a parameter from firstLine to shouldIndentText.
     26
     27        * rendering/RenderBlockLineLayout.cpp:
     28        (WebCore::LineWidth::LineWidth):
     29        (WebCore::LineWidth::shouldIndentText): Return boolean according to m_shouldIndentText.
     30        (WebCore::LineWidth::updateAvailableWidth):
     31        (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
     32        (WebCore::LineWidth::fitBelowFloats):
     33            Add enum IndentTextOrNot and m_shouldIndentText.
     34            Use m_shouldIndentText instead of m_isFirstLine.
     35
     36        (WebCore::requiresIndent): Decide whether text indentation is required.
     37        (WebCore::updateLogicalInlinePositions):
     38        (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
     39        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
     40
    1412013-04-02  Glenn Adams  <glenn@skynav.com>
    242
  • trunk/Source/WebCore/rendering/RenderBlock.h

    r147245 r147513  
    166166    // Versions that can compute line offsets with the region and page offset passed in. Used for speed to avoid having to
    167167    // compute the region all over again when you already know it.
    168     LayoutUnit availableLogicalWidthForLine(LayoutUnit position, bool firstLine, RenderRegion* region, LayoutUnit offsetFromLogicalTopOfFirstPage, LayoutUnit logicalHeight = 0) const
    169     {
    170         return max<LayoutUnit>(0, logicalRightOffsetForLine(position, firstLine, region, offsetFromLogicalTopOfFirstPage, logicalHeight)
    171             - logicalLeftOffsetForLine(position, firstLine, region, offsetFromLogicalTopOfFirstPage, logicalHeight));
    172     }
    173     LayoutUnit logicalRightOffsetForLine(LayoutUnit position, bool firstLine, RenderRegion* region, LayoutUnit offsetFromLogicalTopOfFirstPage, LayoutUnit logicalHeight = 0) const
    174     {
    175         return logicalRightOffsetForLine(position, logicalRightOffsetForContent(region, offsetFromLogicalTopOfFirstPage), firstLine, 0, logicalHeight);
    176     }
    177     LayoutUnit logicalLeftOffsetForLine(LayoutUnit position, bool firstLine, RenderRegion* region, LayoutUnit offsetFromLogicalTopOfFirstPage, LayoutUnit logicalHeight = 0) const
    178     {
    179         return logicalLeftOffsetForLine(position, logicalLeftOffsetForContent(region, offsetFromLogicalTopOfFirstPage), firstLine, 0, logicalHeight);
    180     }
    181     LayoutUnit startOffsetForLine(LayoutUnit position, bool firstLine, RenderRegion* region, LayoutUnit offsetFromLogicalTopOfFirstPage, LayoutUnit logicalHeight = 0) const
    182     {
    183         return style()->isLeftToRightDirection() ? logicalLeftOffsetForLine(position, firstLine, region, offsetFromLogicalTopOfFirstPage, logicalHeight)
    184             : logicalWidth() - logicalRightOffsetForLine(position, firstLine, region, offsetFromLogicalTopOfFirstPage, logicalHeight);
    185     }
    186     LayoutUnit endOffsetForLine(LayoutUnit position, bool firstLine, RenderRegion* region, LayoutUnit offsetFromLogicalTopOfFirstPage, LayoutUnit logicalHeight = 0) const
    187     {
    188         return !style()->isLeftToRightDirection() ? logicalLeftOffsetForLine(position, firstLine, region, offsetFromLogicalTopOfFirstPage, logicalHeight)
    189             : logicalWidth() - logicalRightOffsetForLine(position, firstLine, region, offsetFromLogicalTopOfFirstPage, logicalHeight);
    190     }
    191 
    192     LayoutUnit availableLogicalWidthForLine(LayoutUnit position, bool firstLine, LayoutUnit logicalHeight = 0) const
    193     {
    194         return availableLogicalWidthForLine(position, firstLine, regionAtBlockOffset(position), offsetFromLogicalTopOfFirstPage(), logicalHeight);
    195     }
    196     LayoutUnit logicalRightOffsetForLine(LayoutUnit position, bool firstLine, LayoutUnit logicalHeight = 0) const
    197     {
    198         return logicalRightOffsetForLine(position, logicalRightOffsetForContent(position), firstLine, 0, logicalHeight);
    199     }
    200     LayoutUnit logicalLeftOffsetForLine(LayoutUnit position, bool firstLine, LayoutUnit logicalHeight = 0) const
    201     {
    202         return logicalLeftOffsetForLine(position, logicalLeftOffsetForContent(position), firstLine, 0, logicalHeight);
    203     }
    204     LayoutUnit pixelSnappedLogicalLeftOffsetForLine(LayoutUnit position, bool firstLine, LayoutUnit logicalHeight = 0) const
    205     {
    206         return roundToInt(logicalLeftOffsetForLine(position, firstLine, logicalHeight));
    207     }
    208     LayoutUnit pixelSnappedLogicalRightOffsetForLine(LayoutUnit position, bool firstLine, LayoutUnit logicalHeight = 0) const
     168    LayoutUnit availableLogicalWidthForLine(LayoutUnit position, bool shouldIndentText, RenderRegion* region, LayoutUnit offsetFromLogicalTopOfFirstPage, LayoutUnit logicalHeight = 0) const
     169    {
     170        return max<LayoutUnit>(0, logicalRightOffsetForLine(position, shouldIndentText, region, offsetFromLogicalTopOfFirstPage, logicalHeight)
     171            - logicalLeftOffsetForLine(position, shouldIndentText, region, offsetFromLogicalTopOfFirstPage, logicalHeight));
     172    }
     173    LayoutUnit logicalRightOffsetForLine(LayoutUnit position, bool shouldIndentText, RenderRegion* region, LayoutUnit offsetFromLogicalTopOfFirstPage, LayoutUnit logicalHeight = 0) const
     174    {
     175        return logicalRightOffsetForLine(position, logicalRightOffsetForContent(region, offsetFromLogicalTopOfFirstPage), shouldIndentText, 0, logicalHeight);
     176    }
     177    LayoutUnit logicalLeftOffsetForLine(LayoutUnit position, bool shouldIndentText, RenderRegion* region, LayoutUnit offsetFromLogicalTopOfFirstPage, LayoutUnit logicalHeight = 0) const
     178    {
     179        return logicalLeftOffsetForLine(position, logicalLeftOffsetForContent(region, offsetFromLogicalTopOfFirstPage), shouldIndentText, 0, logicalHeight);
     180    }
     181    LayoutUnit startOffsetForLine(LayoutUnit position, bool shouldIndentText, RenderRegion* region, LayoutUnit offsetFromLogicalTopOfFirstPage, LayoutUnit logicalHeight = 0) const
     182    {
     183        return style()->isLeftToRightDirection() ? logicalLeftOffsetForLine(position, shouldIndentText, region, offsetFromLogicalTopOfFirstPage, logicalHeight)
     184            : logicalWidth() - logicalRightOffsetForLine(position, shouldIndentText, region, offsetFromLogicalTopOfFirstPage, logicalHeight);
     185    }
     186    LayoutUnit endOffsetForLine(LayoutUnit position, bool shouldIndentText, RenderRegion* region, LayoutUnit offsetFromLogicalTopOfFirstPage, LayoutUnit logicalHeight = 0) const
     187    {
     188        return !style()->isLeftToRightDirection() ? logicalLeftOffsetForLine(position, shouldIndentText, region, offsetFromLogicalTopOfFirstPage, logicalHeight)
     189            : logicalWidth() - logicalRightOffsetForLine(position, shouldIndentText, region, offsetFromLogicalTopOfFirstPage, logicalHeight);
     190    }
     191
     192    LayoutUnit availableLogicalWidthForLine(LayoutUnit position, bool shouldIndentText, LayoutUnit logicalHeight = 0) const
     193    {
     194        return availableLogicalWidthForLine(position, shouldIndentText, regionAtBlockOffset(position), offsetFromLogicalTopOfFirstPage(), logicalHeight);
     195    }
     196    LayoutUnit logicalRightOffsetForLine(LayoutUnit position, bool shouldIndentText, LayoutUnit logicalHeight = 0) const
     197    {
     198        return logicalRightOffsetForLine(position, logicalRightOffsetForContent(position), shouldIndentText, 0, logicalHeight);
     199    }
     200    LayoutUnit logicalLeftOffsetForLine(LayoutUnit position, bool shouldIndentText, LayoutUnit logicalHeight = 0) const
     201    {
     202        return logicalLeftOffsetForLine(position, logicalLeftOffsetForContent(position), shouldIndentText, 0, logicalHeight);
     203    }
     204    LayoutUnit pixelSnappedLogicalLeftOffsetForLine(LayoutUnit position, bool shouldIndentText, LayoutUnit logicalHeight = 0) const
     205    {
     206        return roundToInt(logicalLeftOffsetForLine(position, shouldIndentText, logicalHeight));
     207    }
     208    LayoutUnit pixelSnappedLogicalRightOffsetForLine(LayoutUnit position, bool shouldIndentText, LayoutUnit logicalHeight = 0) const
    209209    {
    210210        // FIXME: Multicolumn layouts break carrying over subpixel values to the logical right offset because the lines may be shifted
     
    212212        // by one pixel when rendered versus layed out, which can result in the line being clipped. For now, we have to floor.
    213213        // https://bugs.webkit.org/show_bug.cgi?id=105461
    214         return floorToInt(logicalRightOffsetForLine(position, firstLine, logicalHeight));
    215     }
    216     LayoutUnit startOffsetForLine(LayoutUnit position, bool firstLine, LayoutUnit logicalHeight = 0) const
    217     {
    218         return style()->isLeftToRightDirection() ? logicalLeftOffsetForLine(position, firstLine, logicalHeight)
    219             : logicalWidth() - logicalRightOffsetForLine(position, firstLine, logicalHeight);
    220     }
    221     LayoutUnit endOffsetForLine(LayoutUnit position, bool firstLine, LayoutUnit logicalHeight = 0) const
    222     {
    223         return !style()->isLeftToRightDirection() ? logicalLeftOffsetForLine(position, firstLine, logicalHeight)
    224             : logicalWidth() - logicalRightOffsetForLine(position, firstLine, logicalHeight);
    225     }
    226 
    227     LayoutUnit startAlignedOffsetForLine(LayoutUnit position, bool firstLine);
     214        return floorToInt(logicalRightOffsetForLine(position, shouldIndentText, logicalHeight));
     215    }
     216    LayoutUnit startOffsetForLine(LayoutUnit position, bool shouldIndentText, LayoutUnit logicalHeight = 0) const
     217    {
     218        return style()->isLeftToRightDirection() ? logicalLeftOffsetForLine(position, shouldIndentText, logicalHeight)
     219            : logicalWidth() - logicalRightOffsetForLine(position, shouldIndentText, logicalHeight);
     220    }
     221    LayoutUnit endOffsetForLine(LayoutUnit position, bool shouldIndentText, LayoutUnit logicalHeight = 0) const
     222    {
     223        return !style()->isLeftToRightDirection() ? logicalLeftOffsetForLine(position, shouldIndentText, logicalHeight)
     224            : logicalWidth() - logicalRightOffsetForLine(position, shouldIndentText, logicalHeight);
     225    }
     226
     227    LayoutUnit startAlignedOffsetForLine(LayoutUnit position, bool shouldIndentText);
    228228    LayoutUnit textIndentOffset() const;
    229229
  • trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp

    r147506 r147513  
    9090#endif
    9191
     92enum IndentTextOrNot { DoNotIndentText, IndentText };
     93
    9294class LineWidth {
    9395public:
    94     LineWidth(RenderBlock* block, bool isFirstLine)
     96    LineWidth(RenderBlock* block, bool isFirstLine, IndentTextOrNot shouldIndentText)
    9597        : m_block(block)
    9698        , m_uncommittedWidth(0)
     
    104106#endif
    105107        , m_isFirstLine(isFirstLine)
     108        , m_shouldIndentText(shouldIndentText)
    106109    {
    107110        ASSERT(block);
     
    132135    void applyOverhang(RenderRubyRun*, RenderObject* startRenderer, RenderObject* endRenderer);
    133136    void fitBelowFloats();
     137
     138    bool shouldIndentText() { return m_shouldIndentText == IndentText; }
    134139
    135140private:
     
    151156#endif
    152157    bool m_isFirstLine;
     158    IndentTextOrNot m_shouldIndentText;
    153159};
    154160
     
    157163    LayoutUnit height = m_block->logicalHeight();
    158164    LayoutUnit logicalHeight = logicalHeightForLine(m_block, m_isFirstLine, replacedHeight);
    159     m_left = m_block->logicalLeftOffsetForLine(height, m_isFirstLine, logicalHeight);
    160     m_right = m_block->logicalRightOffsetForLine(height, m_isFirstLine, logicalHeight);
     165    m_left = m_block->logicalLeftOffsetForLine(height, shouldIndentText(), logicalHeight);
     166    m_right = m_block->logicalRightOffsetForLine(height, shouldIndentText(), logicalHeight);
    161167
    162168#if ENABLE(CSS_EXCLUSIONS)
     
    189195#endif
    190196
    191         if (m_isFirstLine && m_block->style()->isLeftToRightDirection())
     197        if (shouldIndentText() && m_block->style()->isLeftToRightDirection())
    192198            newLeft += floorToInt(m_block->textIndentOffset());
    193199        m_left = max<float>(m_left, newLeft);
     
    199205#endif
    200206
    201         if (m_isFirstLine && !m_block->style()->isLeftToRightDirection())
     207        if (shouldIndentText() && !m_block->style()->isLeftToRightDirection())
    202208            newRight -= floorToInt(m_block->textIndentOffset());
    203209        m_right = min<float>(m_right, newRight);
     
    236242            break;
    237243
    238         newLineLeft = m_block->logicalLeftOffsetForLine(floatLogicalBottom, m_isFirstLine);
    239         newLineRight = m_block->logicalRightOffsetForLine(floatLogicalBottom, m_isFirstLine);
     244        newLineLeft = m_block->logicalLeftOffsetForLine(floatLogicalBottom, shouldIndentText());
     245        newLineRight = m_block->logicalRightOffsetForLine(floatLogicalBottom, shouldIndentText());
    240246        newLineWidth = max(0.0f, newLineRight - newLineLeft);
    241247        lastFloatLogicalBottom = floatLogicalBottom;
     
    952958}
    953959
    954 static void updateLogicalInlinePositions(RenderBlock* block, float& lineLogicalLeft, float& lineLogicalRight, float& availableLogicalWidth, bool firstLine, LayoutUnit boxLogicalHeight)
     960static IndentTextOrNot requiresIndent(bool isFirstLine, bool isAfterHardLineBreak, RenderStyle* style)
     961{
     962    if (isFirstLine)
     963        return IndentText;
     964#if ENABLE(CSS3_TEXT)
     965    if (isAfterHardLineBreak && style->textIndentLine() == TextIndentEachLine)
     966        return IndentText;
     967#else
     968    UNUSED_PARAM(isAfterHardLineBreak);
     969    UNUSED_PARAM(style);
     970#endif
     971    return DoNotIndentText;
     972}
     973
     974static void updateLogicalInlinePositions(RenderBlock* block, float& lineLogicalLeft, float& lineLogicalRight, float& availableLogicalWidth, bool firstLine, IndentTextOrNot shouldIndentText, LayoutUnit boxLogicalHeight)
    955975{
    956976    LayoutUnit lineLogicalHeight = logicalHeightForLine(block, firstLine, boxLogicalHeight);
    957     lineLogicalLeft = block->pixelSnappedLogicalLeftOffsetForLine(block->logicalHeight(), firstLine, lineLogicalHeight);
    958     lineLogicalRight = block->pixelSnappedLogicalRightOffsetForLine(block->logicalHeight(), firstLine, lineLogicalHeight);
     977    lineLogicalLeft = block->pixelSnappedLogicalLeftOffsetForLine(block->logicalHeight(), shouldIndentText == IndentText, lineLogicalHeight);
     978    lineLogicalRight = block->pixelSnappedLogicalRightOffsetForLine(block->logicalHeight(), shouldIndentText == IndentText, lineLogicalHeight);
    959979    availableLogicalWidth = lineLogicalRight - lineLogicalLeft;
    960980}
     
    967987    // CSS 2.1: "'Text-indent' only affects a line if it is the first formatted line of an element. For example, the first line of an anonymous block
    968988    // box is only affected if it is the first child of its parent element."
    969     bool firstLine = lineInfo.isFirstLine() && !(isAnonymousBlock() && parent()->firstChild() != this);
     989    // CSS3 "text-indent", "-webkit-each-line" affects the first line of the block container as well as each line after a forced line break,
     990    // but does not affect lines after a soft wrap break.
     991    bool isFirstLine = lineInfo.isFirstLine() && !(isAnonymousBlock() && parent()->firstChild() != this);
     992    bool isAfterHardLineBreak = lineBox->prevRootBox() && lineBox->prevRootBox()->endsWithBreak();
     993    IndentTextOrNot shouldIndentText = requiresIndent(isFirstLine, isAfterHardLineBreak, style());
    970994    float lineLogicalLeft;
    971995    float lineLogicalRight;
    972996    float availableLogicalWidth;
    973     updateLogicalInlinePositions(this, lineLogicalLeft, lineLogicalRight, availableLogicalWidth, firstLine, 0);
     997    updateLogicalInlinePositions(this, lineLogicalLeft, lineLogicalRight, availableLogicalWidth, isFirstLine, shouldIndentText, 0);
    974998    bool needsWordSpacing;
    975999#if ENABLE(CSS_EXCLUSIONS)
     
    10071031    if (firstRun && firstRun->m_object->isReplaced()) {
    10081032        RenderBox* renderBox = toRenderBox(firstRun->m_object);
    1009         updateLogicalInlinePositions(this, lineLogicalLeft, lineLogicalRight, availableLogicalWidth, firstLine, renderBox->logicalHeight());
     1033        updateLogicalInlinePositions(this, lineLogicalLeft, lineLogicalRight, availableLogicalWidth, isFirstLine, shouldIndentText, renderBox->logicalHeight());
    10101034    }
    10111035
     
    26362660    LineMidpointState& lineMidpointState = resolver.midpointState();
    26372661
    2638     LineWidth width(m_block, lineInfo.isFirstLine());
     2662    LineWidth width(m_block, lineInfo.isFirstLine(), requiresIndent(lineInfo.isFirstLine(), lineInfo.previousLineBrokeCleanly(), m_block->style()));
    26392663
    26402664    skipLeadingWhitespace(resolver, lineInfo, lastFloatFromPreviousLine, width);
Note: See TracChangeset for help on using the changeset viewer.