CoreText: Apply subpixel halign also when cell width < advance

pull/9646/head
Daniel Wennberg 2025-10-31 20:16:28 -07:00
parent 410d79b151
commit 42c1345238
1 changed files with 9 additions and 2 deletions

View File

@ -367,9 +367,16 @@ pub const Face = struct {
// We don't do this if the glyph has a stretch constraint,
// since in that case the position was already calculated with the
// new cell width in mind.
if ((constraint.size != .stretch) and (metrics.face_width < cell_width)) {
if (constraint.size != .stretch) {
// We add half the difference to re-center.
x += (cell_width - metrics.face_width) / 2;
const dx = (cell_width - metrics.face_width) / 2;
x += dx;
if (dx < 0) {
// For negative diff (cell narrower than advance), we remove the
// integer part and only keep the fractional adjustment needed
// for consistent subpixel positioning.
x -= @trunc(dx);
}
}
// If this is a bitmap glyph, it will always render as full pixels,