[merge] Merge GDEF marksets in Lookups properly
This commit is contained in:
parent
ed07df39da
commit
b8615f9de6
@ -837,6 +837,17 @@ def mapLookups(self, lookupMap):
|
|||||||
if not l: continue
|
if not l: continue
|
||||||
l.mapLookups(lookupMap)
|
l.mapLookups(lookupMap)
|
||||||
|
|
||||||
|
@_add_method(otTables.Lookup)
|
||||||
|
def mapMarkFilteringSets(self, markFilteringSetMap):
|
||||||
|
if self.LookupFlag & 0x0010:
|
||||||
|
self.MarkFilteringSet = markFilteringSetMap[self.MarkFilteringSet]
|
||||||
|
|
||||||
|
@_add_method(otTables.LookupList)
|
||||||
|
def mapMarkFilteringSets(self, markFilteringSetMap):
|
||||||
|
for l in self.Lookup:
|
||||||
|
if not l: continue
|
||||||
|
l.mapMarkFilteringSets(markFilteringSetMap)
|
||||||
|
|
||||||
@_add_method(otTables.Feature)
|
@_add_method(otTables.Feature)
|
||||||
def mapLookups(self, lookupMap):
|
def mapLookups(self, lookupMap):
|
||||||
self.LookupListIndex = [lookupMap[i] for i in self.LookupListIndex]
|
self.LookupListIndex = [lookupMap[i] for i in self.LookupListIndex]
|
||||||
@ -1173,11 +1184,14 @@ class Merger(object):
|
|||||||
t.table.LookupList.mapLookups(lookupMap)
|
t.table.LookupList.mapLookups(lookupMap)
|
||||||
t.table.FeatureList.mapLookups(lookupMap)
|
t.table.FeatureList.mapLookups(lookupMap)
|
||||||
|
|
||||||
|
if GDEF and GDEF.table.Version >= 0x00010002:
|
||||||
|
markFilteringSetMap = {i:v for i,v in enumerate(GDEF.table.MarkGlyphSetsDef.Coverage)}
|
||||||
|
t.table.LookupList.mapMarkFilteringSets(markFilteringSetMap)
|
||||||
|
|
||||||
if t.table.FeatureList and t.table.ScriptList:
|
if t.table.FeatureList and t.table.ScriptList:
|
||||||
featureMap = {i:v for i,v in enumerate(t.table.FeatureList.FeatureRecord)}
|
featureMap = {i:v for i,v in enumerate(t.table.FeatureList.FeatureRecord)}
|
||||||
t.table.ScriptList.mapFeatures(featureMap)
|
t.table.ScriptList.mapFeatures(featureMap)
|
||||||
|
|
||||||
# TODO GDEF/Lookup MarkFilteringSets
|
|
||||||
# TODO FeatureParams nameIDs
|
# TODO FeatureParams nameIDs
|
||||||
|
|
||||||
def _postMerge(self, font):
|
def _postMerge(self, font):
|
||||||
@ -1234,7 +1248,11 @@ class Merger(object):
|
|||||||
|
|
||||||
t.table.LookupList.LookupCount = len(t.table.LookupList.Lookup)
|
t.table.LookupList.LookupCount = len(t.table.LookupList.Lookup)
|
||||||
|
|
||||||
# TODO GDEF/Lookup MarkFilteringSets
|
if GDEF and GDEF.table.Version >= 0x00010002:
|
||||||
|
markFilteringSetMap = _NonhashableDict(GDEF.table.MarkGlyphSetsDef.Coverage)
|
||||||
|
t.table.LookupList.mapMarkFilteringSets(markFilteringSetMap)
|
||||||
|
|
||||||
|
|
||||||
# TODO FeatureParams nameIDs
|
# TODO FeatureParams nameIDs
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user