Use same size for styled fonts.

This commit is contained in:
John Preston 2024-05-02 18:52:50 +04:00
parent 6e924177b7
commit 141c1b4a7e

View file

@ -251,15 +251,12 @@ struct Metrics {
const auto adjusted = [&](int size, const QFontMetricsF &metrics) {
const auto full = metrics.tightBoundingRect(Full);
const auto desiredTightAscent = -desiredFull.y();
const auto desiredTightHeight = desiredFull.height();
const auto ascentAdd = basicMetrics.ascent() - desiredTightAscent;
const auto heightAdd = basicMetrics.height() - desiredTightHeight;
const auto tightAscent = -full.y();
const auto tightHeight = full.height();
return Metrics{
.pixelSize = size,
.ascent = tightAscent + ascentAdd,
.ascent = basicMetrics.ascent(),
.height = tightHeight + heightAdd,
};
};
@ -337,6 +334,10 @@ struct Metrics {
}
font.setPixelSize(size);
const auto adjust = (overriden && !skipSizeAdjustment);
const auto metrics = ComputeMetrics(font, adjust);
font.setPixelSize(metrics.pixelSize);
font.setWeight((flags & (FontFlag::Bold | FontFlag::Semibold))
? QFont::DemiBold
: QFont::Normal);
@ -353,10 +354,6 @@ struct Metrics {
font.setUnderline(flags & FontFlag::Underline);
font.setStrikeOut(flags & FontFlag::StrikeOut);
const auto adjust = (overriden && !skipSizeAdjustment);
const auto metrics = ComputeMetrics(font, adjust);
font.setPixelSize(metrics.pixelSize);
return {
.font = font,
.ascent = metrics.ascent,