mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-16 08:46:08 +03:00
🧹 make strikethrough calculation slightly clearer
followup to https://github.com/mitchellh/ghostty/pull/1796 the sources of the strikethrough calculation are made more explicit here: the ascent and the subtraction of the leading
This commit is contained in:
@ -514,16 +514,15 @@ pub const Face = struct {
|
|||||||
const cell_baseline = @ceil(layout_metrics.height - layout_metrics.ascent);
|
const cell_baseline = @ceil(layout_metrics.height - layout_metrics.ascent);
|
||||||
const underline_thickness = @ceil(@as(f32, @floatCast(ct_font.getUnderlineThickness())));
|
const underline_thickness = @ceil(@as(f32, @floatCast(ct_font.getUnderlineThickness())));
|
||||||
const strikethrough_position = strikethrough_position: {
|
const strikethrough_position = strikethrough_position: {
|
||||||
// This is the height above baseline consumed by text. To get
|
// This is the height above baseline consumed by text. We must take
|
||||||
// this, its cell height minus baseline. We must also take into
|
// into account that our cell height splits the leading between two
|
||||||
// account that our cell height splits the leading between two
|
|
||||||
// rows so we subtract leading space (blank space).
|
// rows so we subtract leading space (blank space).
|
||||||
const above = cell_height - cell_baseline - (layout_metrics.leading / 2);
|
const text_height_above_baseline = layout_metrics.ascent - (layout_metrics.leading / 2);
|
||||||
|
|
||||||
// We want to position the strikethrough at 65% of the height.
|
// We want to position the strikethrough at 65% of the height.
|
||||||
// This generally gives a nice visual appearance. The number 65%
|
// This generally gives a nice visual appearance. The number 65%
|
||||||
// is somewhat arbitrary but is a common value across terminals.
|
// is somewhat arbitrary but is a common value across terminals.
|
||||||
const pos = above * 0.65;
|
const pos = text_height_above_baseline * 0.65;
|
||||||
|
|
||||||
break :strikethrough_position @ceil(pos);
|
break :strikethrough_position @ceil(pos);
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user