[go: up one dir, main page]

Page MenuHomePhabricator

Bug 2070993 - Keep vertical text with a lengthAdjust scale in the blob image. r?#gfx-reviewers,#firefox-svg-reviewers
ClosedPublic

Authored by nical on Tue, Sep 22, 7:28 AM.
Referenced Files
Unknown Object (File)
Tue, Oct 13, 5:43 PM
Unknown Object (File)
Tue, Oct 13, 11:38 AM
Unknown Object (File)
Mon, Oct 5, 5:43 AM
Unknown Object (File)
Mon, Oct 5, 3:58 AM
Unknown Object (File)
Sat, Oct 3, 7:18 AM
Unknown Object (File)
Wed, Sep 30, 2:05 PM
Unknown Object (File)
Tue, Sep 29, 9:16 PM
Unknown Object (File)
Mon, Sep 28, 12:28 AM
Subscribers

Details

Summary

lengthAdjust="spacingAndGlyphs" scales the glyphs along the inline axis only,
so the run transform that TextRenderedRun hands out is a non-uniform scale.
Sideways vertical glyphs reach WebRender already transposed, through the
TRANSPOSE and FLIP glyph flags that gfxFont sets for a text drawer, and
WebRender folds the run transform in after that transpose. The scale
therefore lands on the glyph's cross axis: the glyphs come out squashed
across the baseline instead of along it, and the run overflows the box the
test covers.

Reject the combination so those runs stay in the blob image, where the
rotation is applied to the draw target instead and the order works out.
Horizontal text is unaffected: with no transpose, a non-uniform run scale
composes correctly.

Fixes lengthAdjust-vertical.svg and lengthAdjust-large-font-vertical.svg with
the WebRender SVG text pref on.

Diff Detail

Event Timeline

phab-bot changed the visibility from "Custom Policy" to "Public (No Login Required)".
phab-bot changed the edit policy from "Custom Policy" to "Restricted Project (Project)".
phab-bot removed a project: secure-revision.
This revision is now accepted and ready to land.Tue, Sep 22, 8:24 AM

This revision requires a Testing Policy Project Tag to be set before landing. Please apply one of testing-approved, testing-exception-unchanged, testing-exception-ui, testing-exception-elsewhere, testing-exception-other. Tip: this Firefox add-on makes it easy!