Bug 119838

Summary: [Qt] Kerning in fast font path breaks letter-spacing
Product: WebKit Reporter: Allan Sandfeld Jensen <allan.jensen>
Component: TextAssignee: Allan Sandfeld Jensen <allan.jensen>
Status: RESOLVED FIXED    
Severity: Normal CC: glenn, jturcotte, mitz, pierre.rossi
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch jturcotte: review+

Allan Sandfeld Jensen
Reported 2013-08-15 07:52:13 PDT
If CSS letter-spacing is used shaping makes very little sense and should be disabled. At least in the Qt implementation of applyTransforms(), letter spacing is also currently completely overriden.
Attachments
Patch (3.81 KB, patch)
2013-08-15 08:08 PDT, Allan Sandfeld Jensen
no flags
Patch (3.65 KB, patch)
2013-08-16 08:08 PDT, Allan Sandfeld Jensen
jturcotte: review+
Allan Sandfeld Jensen
Comment 1 2013-08-15 08:08:40 PDT
Allan Sandfeld Jensen
Comment 2 2013-08-16 06:42:34 PDT
Since we enable kerning by default in 5.1 this actually break CSS letter-spacing in most cases in 5.1.0. While not the most important CSS property, it is still a regression, so I plan to cherry-pick it for 5.1.1 or 5.1.2. What do you think jocelyn?
Jocelyn Turcotte
Comment 3 2013-08-16 07:14:30 PDT
Quoting http://www.w3.org/TR/css-fonts-3/ : "If the ‘letter-spacing’ property is defined, kerning adjustments are considered part of the default spacing and letter spacing adjustments are made after kerning has been applied." So it seems like we should be handling it or set it as a limitation without affecting other ports.
Allan Sandfeld Jensen
Comment 4 2013-08-16 07:42:02 PDT
(In reply to comment #3) > Quoting http://www.w3.org/TR/css-fonts-3/ : > > "If the ‘letter-spacing’ property is defined, kerning adjustments are considered part of the default spacing and letter spacing adjustments are made after kerning has been applied." > > So it seems like we should be handling it or set it as a limitation without affecting other ports. Okay, so it is defined for kerning, but I am still unsure about other types of shaping. Especially ones that tries for fuse the letters together. But I will change this to a Qt specific bug and let the complex path handle it.
Allan Sandfeld Jensen
Comment 5 2013-08-16 08:08:01 PDT
Allan Sandfeld Jensen
Comment 6 2013-08-16 09:02:24 PDT
Glenn Adams
Comment 7 2013-08-16 11:25:22 PDT
(In reply to comment #4) > (In reply to comment #3) > > Quoting http://www.w3.org/TR/css-fonts-3/ : > > > > "If the ‘letter-spacing’ property is defined, kerning adjustments are considered part of the default spacing and letter spacing adjustments are made after kerning has been applied." > > > > So it seems like we should be handling it or set it as a limitation without affecting other ports. > > Okay, so it is defined for kerning, but I am still unsure about other types of shaping. Especially ones that tries for fuse the letters together. > > But I will change this to a Qt specific bug and let the complex path handle it. You definitely would NOT want letter-spacing to cause Arabic letters to not be joined. There is a thread discussing this topic (in related to ligatures) at [1]. [1] http://lists.w3.org/Archives/Public/www-style/2013Aug/0211.html
Allan Sandfeld Jensen
Comment 8 2013-08-16 11:34:07 PDT
(In reply to comment #7) > (In reply to comment #4) > > (In reply to comment #3) > > > Quoting http://www.w3.org/TR/css-fonts-3/ : > > > > > > "If the ‘letter-spacing’ property is defined, kerning adjustments are considered part of the default spacing and letter spacing adjustments are made after kerning has been applied." > > > > > > So it seems like we should be handling it or set it as a limitation without affecting other ports. > > > > Okay, so it is defined for kerning, but I am still unsure about other types of shaping. Especially ones that tries for fuse the letters together. > > > > But I will change this to a Qt specific bug and let the complex path handle it. > > You definitely would NOT want letter-spacing to cause Arabic letters to not be joined. There is a thread discussing this topic (in related to ligatures) at [1]. > > [1] http://lists.w3.org/Archives/Public/www-style/2013Aug/0211.html Well fortunately arabic and other joined scripts are all currently handled by the complex path. Fast font path can currently only handle kerning and ligatures. How should letter spacing handle ligatures, should be glyph-spacing or should it disable ligatures?
Note You need to log in before you can comment on or make changes to this bug.