diff --git a/src/Window.zig b/src/Window.zig index 1d15d114d..b17d060f7 100644 --- a/src/Window.zig +++ b/src/Window.zig @@ -339,17 +339,20 @@ pub fn create(alloc: Allocator, loop: libuv.Loop, config: *const Config) !*Windo font.DeferredFace.initLoaded(try font.Face.init(font_lib, face_bold_ttf, font_size)), ); - // Emoji - try group.addFace( - alloc, - .regular, - font.DeferredFace.initLoaded(try font.Face.init(font_lib, face_emoji_ttf, font_size)), - ); - try group.addFace( - alloc, - .regular, - font.DeferredFace.initLoaded(try font.Face.init(font_lib, face_emoji_text_ttf, font_size)), - ); + // Emoji fallback. We don't include this on Mac since Mac is expected + // to always have the Apple Emoji available. + if (builtin.os.tag != .macos or font.Discover == void) { + try group.addFace( + alloc, + .regular, + font.DeferredFace.initLoaded(try font.Face.init(font_lib, face_emoji_ttf, font_size)), + ); + try group.addFace( + alloc, + .regular, + font.DeferredFace.initLoaded(try font.Face.init(font_lib, face_emoji_text_ttf, font_size)), + ); + } break :group group; }); diff --git a/src/font/DeferredFace.zig b/src/font/DeferredFace.zig index ed4a4517d..0407ec3c9 100644 --- a/src/font/DeferredFace.zig +++ b/src/font/DeferredFace.zig @@ -115,6 +115,7 @@ pub fn load( // both here. switch (font.Face) { @import("face/freetype.zig").Face => try self.loadCoreTextFreetype(lib, size), + @import("face/coretext.zig").Face => try self.loadCoreText(lib, size), else => unreachable, } @@ -142,6 +143,17 @@ fn loadFontconfig( self.face = try Face.initFile(lib, filename, face_index, size); } +fn loadCoreText( + self: *DeferredFace, + lib: Library, + size: font.face.DesiredSize, +) !void { + _ = lib; + assert(self.face == null); + const ct = self.ct.?; + self.face = try Face.initFontCopy(ct.font, size); +} + fn loadCoreTextFreetype( self: *DeferredFace, lib: Library,