Nikolay Sivov (@nsivov) commented about dlls/win32u/font.c:
}
if (format == GGO_METRICS && !mat && get_gdi_font_glyph_metrics( font, index, &gm, &abc )) + { + if (zero_width && (abc.abcA + abc.abcB + abc.abcC == 0)) + *zero_width = get_GDEF_glyph_class( font, index ); goto done; + }
ret = font_funcs->get_glyph_outline( font, index, format, &gm, &abc, buflen, buf, mat, tategaki ); if (ret == GDI_ERROR) return ret;
+ if (zero_width && (abc.abcA + abc.abcB + abc.abcC == 0)) + *zero_width = get_GDEF_glyph_class( font, index ); +
Why would any non-zero class mean zero_width? Out of four currently defined classes only marks are documented as non-spacing. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/3876#note_47690