Changeset 290672 in webkit
- Timestamp:
- Mar 1, 2022, 1:28:07 PM (5 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
-
ChangeLog (modified) (1 diff)
-
layout/integration/InlineIteratorBox.h (modified) (2 diffs)
-
rendering/InlineBoxPainter.cpp (modified) (2 diffs)
-
rendering/TextBoxPainter.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r290671 r290672 1 2022-03-01 Alan Bujtas <zalan@apple.com> 2 3 [IFC][Integration] Add InlineIterator::Box::visualRect 4 https://bugs.webkit.org/show_bug.cgi?id=237309 5 6 Reviewed by Antti Koivisto. 7 8 This is the final, flipped version of the box rect. 9 10 * layout/integration/InlineIteratorBox.h: 11 (WebCore::InlineIterator::Box::visualRect const): 12 * rendering/InlineBoxPainter.cpp: 13 (WebCore::InlineBoxPainter::paintMask): 14 (WebCore::InlineBoxPainter::paintDecorations): 15 * rendering/TextBoxPainter.cpp: 16 (WebCore::TextBoxPainter::computePaintRect): 17 1 18 2022-03-01 Patrick Angle <pangle@apple.com> 2 19 -
trunk/Source/WebCore/layout/integration/InlineIteratorBox.h
r290649 r290672 61 61 bool isRootInlineBox() const; 62 62 63 FloatRect visualRect(float formattingRootSizeInBlockDirection) const; 63 64 FloatRect visualRectIgnoringBlockDirection() const; 64 65 … … 184 185 } 185 186 187 inline FloatRect Box::visualRect(float formattingRootSizeInBlockDirection) const 188 { 189 auto visualRect = visualRectIgnoringBlockDirection(); 190 if (!style().isFlippedBlocksWritingMode()) 191 return visualRect; 192 193 if (style().isHorizontalWritingMode()) 194 visualRect.setY(formattingRootSizeInBlockDirection - visualRect.maxY()); 195 else 196 visualRect.setX(formattingRootSizeInBlockDirection - visualRect.maxX()); 197 return visualRect; 198 } 199 186 200 inline FloatRect Box::visualRectIgnoringBlockDirection() const 187 201 { -
trunk/Source/WebCore/rendering/InlineBoxPainter.cpp
r290649 r290672 142 142 143 143 // Move x/y to our coordinates. 144 LayoutRect localRect(m_inlineBox.visualRectIgnoringBlockDirection()); 145 m_inlineBox.line()->containingBlock().flipForWritingMode(localRect); 144 auto localRect = LayoutRect { m_inlineBox.visualRect(m_inlineBox.line()->containingBlock().logicalHeight()) }; 146 145 LayoutPoint adjustedPaintOffset = m_paintOffset + localRect.location(); 147 146 … … 219 218 220 219 // Move x/y to our coordinates. 221 LayoutRect localRect(m_inlineBox.visualRectIgnoringBlockDirection()); 222 m_inlineBox.line()->containingBlock().flipForWritingMode(localRect); 223 220 auto localRect = LayoutRect { m_inlineBox.visualRect(m_inlineBox.line()->containingBlock().logicalHeight()) }; 224 221 LayoutPoint adjustedPaintoffset = m_paintOffset + localRect.location(); 225 222 GraphicsContext& context = m_paintInfo.context(); -
trunk/Source/WebCore/rendering/TextBoxPainter.cpp
r290649 r290672 573 573 localPaintOffset.move(0, m_style.isHorizontalWritingMode() ? 0 : -textBox().logicalHeight()); 574 574 575 auto locationIncludingFlipping = [&]() -> FloatPoint { 576 auto rect = textBox().visualRectIgnoringBlockDirection(); 577 if (!m_style.isFlippedBlocksWritingMode()) 578 return rect.location(); 579 auto& block = textBox().line()->containingBlock(); 580 if (block.style().isHorizontalWritingMode()) 581 return { rect.x(), block.height() - rect.height() - rect.y() }; 582 return { block.width() - rect.width() - rect.x(), rect.y() }; 583 }; 584 585 FloatPoint boxOrigin = locationIncludingFlipping(); 575 auto boxOrigin = textBox().visualRect(textBox().line()->containingBlock().logicalHeight()).location(); 586 576 boxOrigin.moveBy(localPaintOffset); 587 577 return { boxOrigin, FloatSize(textBox().logicalWidth(), textBox().logicalHeight()) };
Note:
See TracChangeset
for help on using the changeset viewer.