Throw error when compat ligature is wider than unit if FC-mono is enforced
This commit is contained in:
parent
0031b3362e
commit
cfd0c3d741
2 changed files with 6 additions and 3 deletions
|
@ -53,7 +53,7 @@ define [interpretLookup gs lut lookups] : match lut.type
|
|||
define [interpretLookupAt gs j lut] : match lut.type
|
||||
"gsub_single" : if lut.substitutions.(gs.(j)) : set gs.(j) lut.substitutions.(gs.(j))
|
||||
|
||||
export : define [BuildCompatLigatures glyphStore GSUB GDEF config] : begin
|
||||
export : define [BuildCompatLigatures para glyphStore GSUB GDEF config] : begin
|
||||
foreach [cldef : items-of config] : do
|
||||
if [not cldef.unicode] : break nothing
|
||||
if [not cldef.featureTag] : break nothing
|
||||
|
@ -83,6 +83,9 @@ export : define [BuildCompatLigatures glyphStore GSUB GDEF config] : begin
|
|||
g1.applyTransform : new Transform 1 0 0 1 (g1.advanceWidth) 0
|
||||
set g1.advanceWidth : g1.advanceWidth + g.advanceWidth
|
||||
|
||||
if(para.forceMonospace && [Math.round g1.advanceWidth] > [Math.round para.width])
|
||||
throw : new Error "Compat ligature wider than one unit, conflicts with fontconfig-mono: \[cldef.unicode.toString 16]"
|
||||
|
||||
glyphStore.addGlyph g1Name g1
|
||||
glyphStore.encodeGlyph cldef.unicode g1
|
||||
set GDEF.glyphClassDef.(g1Name) GDEF_LIGATURE
|
||||
|
|
|
@ -80,7 +80,7 @@ export : define [buildOtl para glyphStore] : begin
|
|||
local GSUB : buildGSUB para glyphStore markGlyphs
|
||||
|
||||
# Build compatibility ligatures
|
||||
if (para.spacing > 0 && para.compLig) : begin
|
||||
BuildCompatLigatures glyphStore GSUB GDEF para.compLig
|
||||
if (para.enableLigation && para.compLig) : begin
|
||||
BuildCompatLigatures para glyphStore GSUB GDEF para.compLig
|
||||
|
||||
return [object GSUB GPOS GDEF]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue