mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-14 15:56:13 +03:00
renderer/metal: offset zero-advance glyphs by the cell width
This commit is contained in:
@ -1787,6 +1787,15 @@ pub fn updateCell(
|
||||
.emoji => .fg_color,
|
||||
};
|
||||
|
||||
// If this glyph doesn't have an advance, then we assume it is
|
||||
// connected to the previous glyph (perhaps an unsafe assumption...)
|
||||
// and offset by the cell width.
|
||||
// Related: https://github.com/mitchellh/ghostty/issues/1046
|
||||
const extra_offset: i32 = if (glyph.advance_x == 0)
|
||||
@intCast(self.grid_metrics.cell_width)
|
||||
else
|
||||
0;
|
||||
|
||||
self.cells.appendAssumeCapacity(.{
|
||||
.mode = mode,
|
||||
.grid_pos = .{ @as(f32, @floatFromInt(x)), @as(f32, @floatFromInt(y)) },
|
||||
@ -1795,7 +1804,7 @@ pub fn updateCell(
|
||||
.bg_color = bg,
|
||||
.glyph_pos = .{ glyph.atlas_x, glyph.atlas_y },
|
||||
.glyph_size = .{ glyph.width, glyph.height },
|
||||
.glyph_offset = .{ glyph.offset_x, glyph.offset_y },
|
||||
.glyph_offset = .{ glyph.offset_x + extra_offset, glyph.offset_y },
|
||||
});
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user