diff --git a/OTFbuild/opentype_features.py b/OTFbuild/opentype_features.py index 0012897..d0bdf0a 100644 --- a/OTFbuild/opentype_features.py +++ b/OTFbuild/opentype_features.py @@ -1377,10 +1377,10 @@ def _generate_mark(glyphs, has): x_offset -= g.props.nudge_x * SC.SCALE mark_x = x_offset + half * SC.SCALE elif align == SC.ALIGN_RIGHT: - # Match Kotlin: mark at base anchor - W_VAR_INIT. - # The contour x_offset already includes (width - W_VAR_INIT), - # so mark_x just needs the nudge_x component. - mark_x = g.props.nudge_x * SC.SCALE + # nudge_x is already baked into the CFF contour x_offset + # (font_builder.py line 286). Setting mark_x = 0 means + # the nudge is applied once (via the contour), not twice. + mark_x = 0 else: # ALIGN_LEFT / ALIGN_BEFORE: mark sits at base origin. mark_x = 0 diff --git a/src/assets/diacritical_marks_variable.tga b/src/assets/diacritical_marks_variable.tga index c9542a3..fd1cbbe 100755 --- a/src/assets/diacritical_marks_variable.tga +++ b/src/assets/diacritical_marks_variable.tga @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1a84f97ba227c517d9625a013646332b5cd760d65084e1f1b0544a3f58c8512d +oid sha256:003c816d374148092c9a06475ffb6743674e050f588c402664aa3f8f3f1acbe5 size 143378 diff --git a/work_files/diacritical_marks_variable.psd b/work_files/diacritical_marks_variable.psd index b0f1aeb..f0e55a2 100644 --- a/work_files/diacritical_marks_variable.psd +++ b/work_files/diacritical_marks_variable.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:794d802abc681f9a810abe33c35a0a5257db86f8e73ad07eea22a6cd981c63ea -size 132159 +oid sha256:3bd96e43337713250dae7dd3fe93caea4d1d8aa18f4bbf8c2e7b7b3d99bdd770 +size 132358