mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-22 03:36:14 +03:00
Merge pull request #1260 from mitchellh/font-italic
font: auto-italic should only apply to text presentation
This commit is contained in:
@ -410,21 +410,6 @@ pub fn init(
|
|||||||
_ = try group.addFace(.bold_italic, .{ .deferred = face });
|
_ = try group.addFace(.bold_italic, .{ .deferred = face });
|
||||||
} else log.warn("font-family-bold-italic not found: {s}", .{family});
|
} else log.warn("font-family-bold-italic not found: {s}", .{family});
|
||||||
}
|
}
|
||||||
|
|
||||||
// On macOS, always search for and add the Apple Emoji font
|
|
||||||
// as our preferred emoji font for fallback. We do this in case
|
|
||||||
// people add other emoji fonts to their system, we always want to
|
|
||||||
// prefer the official one. Users can override this by explicitly
|
|
||||||
// specifying a font-family for emoji.
|
|
||||||
if (comptime builtin.os.tag == .macos) {
|
|
||||||
var disco_it = try disco.discover(alloc, .{
|
|
||||||
.family = "Apple Color Emoji",
|
|
||||||
});
|
|
||||||
defer disco_it.deinit();
|
|
||||||
if (try disco_it.next()) |face| {
|
|
||||||
_ = try group.addFace(.regular, .{ .fallback_deferred = face });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Our built-in font will be used as a backup
|
// Our built-in font will be used as a backup
|
||||||
@ -440,6 +425,22 @@ pub fn init(
|
|||||||
// Auto-italicize if we have to.
|
// Auto-italicize if we have to.
|
||||||
try group.italicize();
|
try group.italicize();
|
||||||
|
|
||||||
|
// On macOS, always search for and add the Apple Emoji font
|
||||||
|
// as our preferred emoji font for fallback. We do this in case
|
||||||
|
// people add other emoji fonts to their system, we always want to
|
||||||
|
// prefer the official one. Users can override this by explicitly
|
||||||
|
// specifying a font-family for emoji.
|
||||||
|
if (comptime builtin.os.tag == .macos) apple_emoji: {
|
||||||
|
const disco = group.discover orelse break :apple_emoji;
|
||||||
|
var disco_it = try disco.discover(alloc, .{
|
||||||
|
.family = "Apple Color Emoji",
|
||||||
|
});
|
||||||
|
defer disco_it.deinit();
|
||||||
|
if (try disco_it.next()) |face| {
|
||||||
|
_ = try group.addFace(.regular, .{ .fallback_deferred = face });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Emoji fallback. We don't include this on Mac since Mac is expected
|
// Emoji fallback. We don't include this on Mac since Mac is expected
|
||||||
// to always have the Apple Emoji available on the system.
|
// to always have the Apple Emoji available on the system.
|
||||||
if (builtin.os.tag != .macos or font.Discover == void) {
|
if (builtin.os.tag != .macos or font.Discover == void) {
|
||||||
|
@ -265,11 +265,16 @@ pub fn italicize(self: *Group) !void {
|
|||||||
const list = self.faces.get(.regular);
|
const list = self.faces.get(.regular);
|
||||||
if (list.items.len == 0) return;
|
if (list.items.len == 0) return;
|
||||||
|
|
||||||
// The font must be loaded.
|
// Find our first font that is text.
|
||||||
break :regular try self.faceFromIndex(.{
|
for (0..list.items.len) |i| {
|
||||||
.style = .regular,
|
const face = try self.faceFromIndex(.{
|
||||||
.idx = 0,
|
.style = .regular,
|
||||||
});
|
.idx = @intCast(i),
|
||||||
|
});
|
||||||
|
if (face.presentation == .text) break :regular face;
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Try to italicize it.
|
// Try to italicize it.
|
||||||
|
Reference in New Issue
Block a user