Title: [290672] trunk/Source/WebCore
- Revision
- 290672
- Author
- [email protected]
- Date
- 2022-03-01 13:28:07 -0800 (Tue, 01 Mar 2022)
Log Message
[IFC][Integration] Add InlineIterator::Box::visualRect
https://bugs.webkit.org/show_bug.cgi?id=237309
Reviewed by Antti Koivisto.
This is the final, flipped version of the box rect.
* layout/integration/InlineIteratorBox.h:
(WebCore::InlineIterator::Box::visualRect const):
* rendering/InlineBoxPainter.cpp:
(WebCore::InlineBoxPainter::paintMask):
(WebCore::InlineBoxPainter::paintDecorations):
* rendering/TextBoxPainter.cpp:
(WebCore::TextBoxPainter::computePaintRect):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (290671 => 290672)
--- trunk/Source/WebCore/ChangeLog 2022-03-01 21:19:10 UTC (rev 290671)
+++ trunk/Source/WebCore/ChangeLog 2022-03-01 21:28:07 UTC (rev 290672)
@@ -1,3 +1,20 @@
+2022-03-01 Alan Bujtas <[email protected]>
+
+ [IFC][Integration] Add InlineIterator::Box::visualRect
+ https://bugs.webkit.org/show_bug.cgi?id=237309
+
+ Reviewed by Antti Koivisto.
+
+ This is the final, flipped version of the box rect.
+
+ * layout/integration/InlineIteratorBox.h:
+ (WebCore::InlineIterator::Box::visualRect const):
+ * rendering/InlineBoxPainter.cpp:
+ (WebCore::InlineBoxPainter::paintMask):
+ (WebCore::InlineBoxPainter::paintDecorations):
+ * rendering/TextBoxPainter.cpp:
+ (WebCore::TextBoxPainter::computePaintRect):
+
2022-03-01 Patrick Angle <[email protected]>
Web app fails only when dev tools is open
Modified: trunk/Source/WebCore/layout/integration/InlineIteratorBox.h (290671 => 290672)
--- trunk/Source/WebCore/layout/integration/InlineIteratorBox.h 2022-03-01 21:19:10 UTC (rev 290671)
+++ trunk/Source/WebCore/layout/integration/InlineIteratorBox.h 2022-03-01 21:28:07 UTC (rev 290672)
@@ -60,6 +60,7 @@
bool isInlineBox() const;
bool isRootInlineBox() const;
+ FloatRect visualRect(float formattingRootSizeInBlockDirection) const;
FloatRect visualRectIgnoringBlockDirection() const;
float logicalTop() const { return isHorizontal() ? visualRectIgnoringBlockDirection().y() : visualRectIgnoringBlockDirection().x(); }
@@ -183,6 +184,19 @@
});
}
+inline FloatRect Box::visualRect(float formattingRootSizeInBlockDirection) const
+{
+ auto visualRect = visualRectIgnoringBlockDirection();
+ if (!style().isFlippedBlocksWritingMode())
+ return visualRect;
+
+ if (style().isHorizontalWritingMode())
+ visualRect.setY(formattingRootSizeInBlockDirection - visualRect.maxY());
+ else
+ visualRect.setX(formattingRootSizeInBlockDirection - visualRect.maxX());
+ return visualRect;
+}
+
inline FloatRect Box::visualRectIgnoringBlockDirection() const
{
return WTF::switchOn(m_pathVariant, [](auto& path) {
Modified: trunk/Source/WebCore/rendering/InlineBoxPainter.cpp (290671 => 290672)
--- trunk/Source/WebCore/rendering/InlineBoxPainter.cpp 2022-03-01 21:19:10 UTC (rev 290671)
+++ trunk/Source/WebCore/rendering/InlineBoxPainter.cpp 2022-03-01 21:28:07 UTC (rev 290672)
@@ -141,8 +141,7 @@
return;
// Move x/y to our coordinates.
- LayoutRect localRect(m_inlineBox.visualRectIgnoringBlockDirection());
- m_inlineBox.line()->containingBlock().flipForWritingMode(localRect);
+ auto localRect = LayoutRect { m_inlineBox.visualRect(m_inlineBox.line()->containingBlock().logicalHeight()) };
LayoutPoint adjustedPaintOffset = m_paintOffset + localRect.location();
const NinePieceImage& maskNinePieceImage = renderer().style().maskBoxImage();
@@ -218,9 +217,7 @@
return;
// Move x/y to our coordinates.
- LayoutRect localRect(m_inlineBox.visualRectIgnoringBlockDirection());
- m_inlineBox.line()->containingBlock().flipForWritingMode(localRect);
-
+ auto localRect = LayoutRect { m_inlineBox.visualRect(m_inlineBox.line()->containingBlock().logicalHeight()) };
LayoutPoint adjustedPaintoffset = m_paintOffset + localRect.location();
GraphicsContext& context = m_paintInfo.context();
LayoutRect paintRect = LayoutRect(adjustedPaintoffset, localRect.size());
Modified: trunk/Source/WebCore/rendering/TextBoxPainter.cpp (290671 => 290672)
--- trunk/Source/WebCore/rendering/TextBoxPainter.cpp 2022-03-01 21:19:10 UTC (rev 290671)
+++ trunk/Source/WebCore/rendering/TextBoxPainter.cpp 2022-03-01 21:28:07 UTC (rev 290672)
@@ -572,17 +572,7 @@
localPaintOffset.move(0, m_style.isHorizontalWritingMode() ? 0 : -textBox().logicalHeight());
- auto locationIncludingFlipping = [&]() -> FloatPoint {
- auto rect = textBox().visualRectIgnoringBlockDirection();
- if (!m_style.isFlippedBlocksWritingMode())
- return rect.location();
- auto& block = textBox().line()->containingBlock();
- if (block.style().isHorizontalWritingMode())
- return { rect.x(), block.height() - rect.height() - rect.y() };
- return { block.width() - rect.width() - rect.x(), rect.y() };
- };
-
- FloatPoint boxOrigin = locationIncludingFlipping();
+ auto boxOrigin = textBox().visualRect(textBox().line()->containingBlock().logicalHeight()).location();
boxOrigin.moveBy(localPaintOffset);
return { boxOrigin, FloatSize(textBox().logicalWidth(), textBox().logicalHeight()) };
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes