commit 03975cdacf700fcb78298d5f508e7947b838a897
parent 357bcd9a91704cbbea1a17a2cff522353b5d3b6f
Author: Jonathan Kew <jkew@mozilla.com>
Date: Wed, 7 Jan 2026 11:44:57 +0000
Bug 2008862 - Don't attempt to apply skip-ink to textframes with text-combine-upright. r=layout-reviewers,emilio
This is comparable to runs with text-orientation:upright, where we already avoid skip-ink[1]
(because the skia line-intercepts code we're using isn't set up for vertical-upright text,
and even if it were, it'd probably look terrible).
[1] https://searchfox.org/firefox-main/rev/e7efe8e2d1b972ed4a073065bc99cfb08f6c31e9/layout/painting/nsCSSRendering.cpp#4135-4149
Differential Revision: https://phabricator.services.mozilla.com/D278103
Diffstat:
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/layout/generic/nsTextFrame.cpp b/layout/generic/nsTextFrame.cpp
@@ -6290,7 +6290,9 @@ void nsTextFrame::PaintDecorationLine(
params.color = aParams.overrideColor ? *aParams.overrideColor : aParams.color;
params.icoordInFrame = Float(aParams.icoordInFrame);
params.baselineOffset = Float(aParams.baselineOffset);
- params.allowInkSkipping = aParams.allowInkSkipping;
+ // Disable ink-skipping for frames with text-combine-upright.
+ params.allowInkSkipping =
+ aParams.allowInkSkipping && !Style()->IsTextCombined();
params.skipInk = aParams.skipInk;
if (aParams.callbacks) {
Rect path = nsCSSRendering::DecorationLineToPath(params);