Prevent advance width zeroing of certain mark glyphs

Is there a way to prevent advance width zeroing of certain mark glyphs (without setting the subCategry, since I want to keep the mark GDEF glyph class)?

I think a separate control for the GDEF type would work better, since more people appear to do unconventional GDEF tricks/hacks to implement advanced layouts. Not sure if the GDEF type of a glyph would be a new property and how that would be surfaced in the UI.

What would be your use case?

Some math layout engines use mark advance to measure is size (in math layout marks can grow horizontally and the engine has a list of glyphs with growing sizes to select from), and if the advance width is zero such engine will end up always using the largest glyph.

With no advance zeroing:

With advance zeroing:

Would adding a GDEF property to glyphs would fix this? The glyph subCategory could be set to something else then no-spacing (preventing the zero width collapse) and the GDEF property would be set to mark.

Yes, that would work for me.

I could imagine this being added as a hidden property that you have to set using scripting, at least in the beginning. UI would come later.

That would work for me, too.

Have you tried assigning the Spacing Combining subcategory? That will still treat it as a mark (mark/mkmk and GDEF) but will not change the width.

Thanks, I didn’t know about this category and it indeed does exactly what I need.