From fe41a24534e1280f088835ea1813fa64120f4169 Mon Sep 17 00:00:00 2001 From: Neil Date: Tue, 28 Sep 2021 12:53:58 +1000 Subject: Fix bad layout of monospace text on Cocoa by adding separate field monospaceCharacterWidth for width of monospaced characters. --- src/ViewStyle.cxx | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/ViewStyle.cxx') diff --git a/src/ViewStyle.cxx b/src/ViewStyle.cxx index 84d165997..5273841ed 100644 --- a/src/ViewStyle.cxx +++ b/src/ViewStyle.cxx @@ -66,6 +66,7 @@ void FontRealised::Realise(Surface &surface, int zoomLevel, Technology technolog measurements.capitalHeight = surface.Ascent(font.get()) - surface.InternalLeading(font.get()); measurements.aveCharWidth = surface.AverageCharWidth(font.get()); + measurements.monospaceCharacterWidth = measurements.aveCharWidth; measurements.spaceWidth = surface.WidthText(font.get(), " "); if (fs.checkMonospaced) { @@ -82,6 +83,7 @@ void FontRealised::Realise(Surface &surface, int zoomLevel, Technology technolog const XYPOSITION scaledVariance = variance / measurements.aveCharWidth; constexpr XYPOSITION monospaceWidthEpsilon = 0.000001; // May need tweaking if monospace fonts vary more measurements.monospaceASCII = scaledVariance < monospaceWidthEpsilon; + measurements.monospaceCharacterWidth = minWidth; } else { measurements.monospaceASCII = false; } -- cgit v1.2.3