Title: [289051] trunk/Source/WebCore
- Revision
- 289051
- Author
- za...@apple.com
- Date
- 2022-02-03 06:51:37 -0800 (Thu, 03 Feb 2022)
Log Message
[LFC][IFC] imported/w3c/web-platform-tests/css/css-writing-modes/text-align-vlr* tests are failing
https://bugs.webkit.org/show_bug.cgi?id=236059
Reviewed by Antti Koivisto.
Content (alignment) offset should be flipped for vertical writing mode.
* layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::processNonBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::flipLogicalRectToVisualForWritingMode):
(WebCore::Layout::InlineDisplayContentBuilder::movePointHorizontallyForWritingMode const):
* layout/formattingContexts/inline/display/InlineDisplayContentBuilder.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (289050 => 289051)
--- trunk/Source/WebCore/ChangeLog 2022-02-03 14:31:17 UTC (rev 289050)
+++ trunk/Source/WebCore/ChangeLog 2022-02-03 14:51:37 UTC (rev 289051)
@@ -1,3 +1,18 @@
+2022-02-03 Alan Bujtas <za...@apple.com>
+
+ [LFC][IFC] imported/w3c/web-platform-tests/css/css-writing-modes/text-align-vlr* tests are failing
+ https://bugs.webkit.org/show_bug.cgi?id=236059
+
+ Reviewed by Antti Koivisto.
+
+ Content (alignment) offset should be flipped for vertical writing mode.
+
+ * layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
+ (WebCore::Layout::InlineDisplayContentBuilder::processNonBidiContent):
+ (WebCore::Layout::InlineDisplayContentBuilder::flipLogicalRectToVisualForWritingMode):
+ (WebCore::Layout::InlineDisplayContentBuilder::movePointHorizontallyForWritingMode const):
+ * layout/formattingContexts/inline/display/InlineDisplayContentBuilder.h:
+
2022-02-03 Youenn Fablet <you...@apple.com>
RealtimeIncomingVideoSourceCocoa should not need to create IOSurfaces
Modified: trunk/Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp (289050 => 289051)
--- trunk/Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp 2022-02-03 14:31:17 UTC (rev 289050)
+++ trunk/Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp 2022-02-03 14:51:37 UTC (rev 289051)
@@ -327,7 +327,7 @@
ASSERT(lineContent.inlineBaseDirection == TextDirection::LTR || !hasContent);
#endif
auto writingMode = root().style().writingMode();
- auto contentStartInVisualOrder = displayLine.left() + displayLine.contentLeft();
+ auto contentStartInVisualOrder = movePointHorizontallyForWritingMode(displayLine.topLeft(), displayLine.contentLeft(), writingMode);
for (auto& lineRun : lineContent.runs) {
auto& layoutBox = lineRun.layoutBox();
@@ -334,7 +334,7 @@
auto visualRectRelativeToRoot = [&](auto logicalRect) {
auto visualRect = flipLogicalRectToVisualForWritingMode(logicalRect, writingMode);
- visualRect.moveBy({ contentStartInVisualOrder, displayLine.top() });
+ visualRect.moveBy(contentStartInVisualOrder);
return visualRect;
};
@@ -789,7 +789,7 @@
case WritingMode::LeftToRight:
case WritingMode::RightToLeft: {
// See InlineFormattingGeometry for more info.
- return InlineRect { logicalRect.left(), logicalRect.top(), logicalRect.height(), logicalRect.width() };
+ return { logicalRect.left(), logicalRect.top(), logicalRect.height(), logicalRect.width() };
}
default:
ASSERT_NOT_REACHED();
@@ -798,7 +798,26 @@
return logicalRect;
}
+InlineLayoutPoint InlineDisplayContentBuilder::movePointHorizontallyForWritingMode(const InlineLayoutPoint& logicalPoint, InlineLayoutUnit horizontalOffset, WritingMode writingMode) const
+{
+ auto visualPoint = logicalPoint;
+ switch (writingMode) {
+ case WritingMode::TopToBottom:
+ visualPoint.moveBy(FloatPoint { horizontalOffset, { } });
+ break;
+ case WritingMode::LeftToRight:
+ case WritingMode::RightToLeft: {
+ visualPoint.moveBy(FloatPoint { { }, horizontalOffset });
+ break;
+ }
+ default:
+ ASSERT_NOT_REACHED();
+ break;
+ }
+ return visualPoint;
}
+
}
+}
#endif
Modified: trunk/Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.h (289050 => 289051)
--- trunk/Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.h 2022-02-03 14:31:17 UTC (rev 289050)
+++ trunk/Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.h 2022-02-03 14:51:37 UTC (rev 289051)
@@ -67,6 +67,8 @@
void adjustVisualGeometryForDisplayBox(size_t displayBoxNodeIndex, InlineLayoutUnit& accumulatedOffset, InlineLayoutUnit lineBoxTop, const DisplayBoxTree&, DisplayBoxes&, const LineBox&, const HashMap<const Box*, IsFirstLastIndex>&);
size_t ensureDisplayBoxForContainer(const ContainerBox&, DisplayBoxTree&, AncestorStack&, DisplayBoxes&);
+ InlineLayoutPoint movePointHorizontallyForWritingMode(const InlineLayoutPoint& topLeft, InlineLayoutUnit horizontalOffset, WritingMode) const;
+
const ContainerBox& root() const { return m_formattingContextRoot; }
InlineFormattingState& formattingState() const { return m_formattingState; }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes