[webkit-changes] [WebKit/WebKit] c38822: Inline-level elements with self-painting layer ren...
Alan Baradlay
noreply at github.com
Wed Jun 7 21:41:14 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c38822c4ed1cacacccbaf4c04dbd02047ad5ebed
https://github.com/WebKit/WebKit/commit/c38822c4ed1cacacccbaf4c04dbd02047ad5ebed
Author: Alan Baradlay <zalan at apple.com>
Date: 2023-06-07 (Wed, 07 Jun 2023)
Changed paths:
A LayoutTests/fast/inline/overflow-truncate-with-self-painting-layer-expected.html
A LayoutTests/fast/inline/overflow-truncate-with-self-painting-layer.html
A LayoutTests/fast/inline/overflow-truncate-with-self-painting-layer2-expected.html
A LayoutTests/fast/inline/overflow-truncate-with-self-painting-layer2.html
M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp
M Source/WebCore/rendering/RenderLayer.cpp
M Source/WebCore/rendering/RenderLayer.h
Log Message:
-----------
Inline-level elements with self-painting layer renders overlapping ellipsis.
https://bugs.webkit.org/show_bug.cgi?id=257811
<rdar://problem/110408920>
Reviewed by Simon Fraser.
"text-overflow: ellipsis" visually replaces partially overflowing content with "..."
We achieve this by
1. skipping partially overflowing content at paint time (text content gets partially truncated, while inline level boxes are skipped completely)
2. paint "..." starting from where the truncated inline content ends
("overflow: hidden" takes care of clipping the remaining, fully overflowing content)
This patch ensures that such truncated boxes don't get painted even when they are on self-painting layers.
* LayoutTests/fast/inline/overflow-truncate-with-self-painting-layer-expected.html: Added.
* LayoutTests/fast/inline/overflow-truncate-with-self-painting-layer.html: Added.
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::updateRenderTreePositions): At this point we finished with inline layout and start transferring geometry/state
information over to the render tree. Let's update the associated RenderLayers here.
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::computeHasVisibleContent const):
* Source/WebCore/rendering/RenderLayer.h:
(WebCore::RenderLayer::setIsHiddenByOverflowTruncation):
Canonical link: https://commits.webkit.org/264973@main
More information about the webkit-changes
mailing list