From 0706c8cf7c378099085cc0679c5380022c6b4050 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 10 May 2024 22:55:09 +0530 Subject: [PATCH] Handle default values not present in variation data under CoreText --- kitty/fonts/common.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/kitty/fonts/common.py b/kitty/fonts/common.py index f28c7bd08..76fbeca14 100644 --- a/kitty/fonts/common.py +++ b/kitty/fonts/common.py @@ -299,13 +299,21 @@ def develop(family: str = '') -> None: print('Bold-Italic:', s(ff['bi'])) +def axis_values_are_equal(defaults: Dict[str, float], a: Dict[str, float], b: Dict[str, float]) -> bool: + ad, bd = defaults.copy(), defaults.copy() + ad.update(a) + bd.update(b) + return ad == bd + + def get_named_style(face: Face) -> Optional[NamedStyle]: axis_map = face.get_variation() if axis_map is None: return None vd = get_variable_data_for_face(face) + defaults = {ax['tag']: ax['default'] for ax in vd['axes']} for ns in vd['named_styles']: - if ns['axis_values'] == axis_map: + if axis_values_are_equal(defaults, ns['axis_values'], axis_map): return ns return None