From 4878b7cfd3b594b863280298bb972cd3026bb385 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 22 Mar 2024 15:09:44 +0530 Subject: [PATCH] Proper fix for Zapf Dingbats vs Apple See #7249 --- kitty/core_text.m | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/kitty/core_text.m b/kitty/core_text.m index ae4bebc8e..e61c2d6fd 100644 --- a/kitty/core_text.m +++ b/kitty/core_text.m @@ -294,7 +294,10 @@ apply_styles_to_fallback_font(CTFontRef original_fallback_font, bool bold, bool if (!original_fallback_font || is_last_resort_font(original_fallback_font)) return original_fallback_font; CTFontRef ans = nil; CTFontDescriptorRef original_descriptor = CTFontCopyFontDescriptor(original_fallback_font); - CTFontSymbolicTraits traits = kCTFontTraitMonoSpace; + // We cannot set kCTFontTraitMonoSpace in traits as if the original + // fallback font is Zapf Dingbats we get .AppleSystemUIFontMonospaced as + // the new fallback + CTFontSymbolicTraits traits = 0; if (bold) traits |= kCTFontTraitBold; if (italic) traits |= kCTFontTraitItalic; CTFontDescriptorRef descriptor = CTFontDescriptorCreateCopyWithSymbolicTraits(original_descriptor, traits, traits); @@ -305,6 +308,7 @@ apply_styles_to_fallback_font(CTFontRef original_fallback_font, bool bold, bool CFStringRef new_name = CTFontCopyFamilyName(ans); CFStringRef old_name = CTFontCopyFamilyName(original_fallback_font); bool same_family = cf_string_equals(new_name, old_name); + /* NSLog(@"old: %@ new: %@", old_name, new_name); */ CFRelease(new_name); CFRelease(old_name); if (!same_family) { CFRelease(ans); return original_fallback_font; } }