Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: da42549d3773aa043610e1db4e578ef79dc716d5
https://github.com/WebKit/WebKit/commit/da42549d3773aa043610e1db4e578ef79dc716d5
Author: Alan Baradlay <[email protected]>
Date: 2023-12-19 (Tue, 19 Dec 2023)
Changed paths:
A LayoutTests/fast/flexbox/line-clamp-with-float-expected.html
A LayoutTests/fast/flexbox/line-clamp-with-float.html
M
Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp
M Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.h
M Source/WebCore/layout/formattingContexts/inline/InlineFormattingUtils.cpp
M Source/WebCore/layout/formattingContexts/inline/InlineFormattingUtils.h
M Source/WebCore/layout/formattingContexts/inline/InlineLineTypes.h
M
Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp
M Source/WebCore/rendering/RenderBlockFlow.cpp
M Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp
Log Message:
-----------
CSS line clamp together with float not working correctly
https://bugs.webkit.org/show_bug.cgi?id=266018
<rdar://problem/119355692>
Reviewed by Antti Koivisto.
1. Line clamping should ignore lines with no inline content. It usually happens
when floats don't let us put content on the candidate line (see
numberOfLinesWithInlineContent)
2. Move lineEndingEllipsisPolicy to InlineFormattingUtils and use
numberOfLinesWithInlineContent as input to decide of the ellipsis policy
3. LineEndingEllipsisPolicy::No -> LineEndingEllipsisPolicy::NoEllipsis
4. While line-clamp state is valid across block container boundaries, we should
not apply it on floats/out-of-flow content (i.e. do not count lines inside
floats)
5. RenderDeprecatedFlexibleBox::applyModernLineClamp should only return
null_opt when we couldn't manage to run line clamping at all.
* LayoutTests/fast/flexbox/line-clamp-with-float-expected.html: Added.
* LayoutTests/fast/flexbox/line-clamp-with-float.html: Added.
* Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::createDisplayContentForInlineContent):
(WebCore::Layout::lineEndingEllipsisPolicy): Deleted.
* Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.h:
* Source/WebCore/layout/formattingContexts/inline/InlineFormattingUtils.cpp:
(WebCore::Layout::InlineFormattingUtils::lineEndingEllipsisPolicy):
* Source/WebCore/layout/formattingContexts/inline/InlineFormattingUtils.h:
* Source/WebCore/layout/formattingContexts/inline/InlineLineTypes.h:
*
Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp:
(WebCore::Layout::InlineDisplayLineBuilder::trailingEllipsisVisualRectAfterTruncation):
* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutModernLines):
* Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
(WebCore::getHeightForLineCount):
(WebCore::RenderDeprecatedFlexibleBox::applyModernLineClamp):
Canonical link: https://commits.webkit.org/272278@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes