Fix adjustment of size for modified fonts.
This commit is contained in:
parent
5b8eb3a5b8
commit
db8c3d16e8
1 changed files with 6 additions and 7 deletions
|
|
@ -314,8 +314,7 @@ struct Metrics {
|
||||||
[[nodiscard]] FontResolveResult ResolveFont(
|
[[nodiscard]] FontResolveResult ResolveFont(
|
||||||
const QString &family,
|
const QString &family,
|
||||||
FontFlags flags,
|
FontFlags flags,
|
||||||
int size,
|
int size) {
|
||||||
bool skipSizeAdjustment) {
|
|
||||||
auto font = QFont();
|
auto font = QFont();
|
||||||
|
|
||||||
const auto monospace = (flags & FontFlag::Monospace) != 0;
|
const auto monospace = (flags & FontFlag::Monospace) != 0;
|
||||||
|
|
@ -334,7 +333,7 @@ struct Metrics {
|
||||||
}
|
}
|
||||||
font.setPixelSize(size);
|
font.setPixelSize(size);
|
||||||
|
|
||||||
const auto adjust = !skipSizeAdjustment && (overriden || system);
|
const auto adjust = (overriden || system);
|
||||||
const auto metrics = ComputeMetrics(font, adjust);
|
const auto metrics = ComputeMetrics(font, adjust);
|
||||||
font.setPixelSize(metrics.pixelSize);
|
font.setPixelSize(metrics.pixelSize);
|
||||||
|
|
||||||
|
|
@ -354,13 +353,14 @@ struct Metrics {
|
||||||
font.setUnderline(flags & FontFlag::Underline);
|
font.setUnderline(flags & FontFlag::Underline);
|
||||||
font.setStrikeOut(flags & FontFlag::StrikeOut);
|
font.setStrikeOut(flags & FontFlag::StrikeOut);
|
||||||
|
|
||||||
|
const auto index = (family == Custom) ? 0 : RegisterFontFamily(family);
|
||||||
return {
|
return {
|
||||||
.font = font,
|
.font = font,
|
||||||
.ascent = metrics.ascent,
|
.ascent = metrics.ascent,
|
||||||
.height = metrics.height,
|
.height = metrics.height,
|
||||||
.iascent = int(base::SafeRound(metrics.ascent)),
|
.iascent = int(base::SafeRound(metrics.ascent)),
|
||||||
.iheight = int(base::SafeRound(metrics.height)),
|
.iheight = int(base::SafeRound(metrics.height)),
|
||||||
.requestedFamily = RegisterFontFamily(family),
|
.requestedFamily = index,
|
||||||
.requestedSize = size,
|
.requestedSize = size,
|
||||||
.requestedFlags = flags,
|
.requestedFlags = flags,
|
||||||
};
|
};
|
||||||
|
|
@ -506,8 +506,7 @@ void Font::init(
|
||||||
ResolveFont(
|
ResolveFont(
|
||||||
family ? FontFamilies[family] : Custom,
|
family ? FontFamilies[family] : Custom,
|
||||||
flags,
|
flags,
|
||||||
size,
|
size),
|
||||||
family != 0),
|
|
||||||
modified)).first;
|
modified)).first;
|
||||||
QtFontsKeys.emplace(QtFontKey(i->second->data.f), key);
|
QtFontsKeys.emplace(QtFontKey(i->second->data.f), key);
|
||||||
}
|
}
|
||||||
|
|
@ -515,7 +514,7 @@ void Font::init(
|
||||||
}
|
}
|
||||||
|
|
||||||
OwnedFont::OwnedFont(const QString &custom, FontFlags flags, int size)
|
OwnedFont::OwnedFont(const QString &custom, FontFlags flags, int size)
|
||||||
: _data(ResolveFont(custom, flags, size, false), nullptr) {
|
: _data(ResolveFont(custom, flags, size), nullptr) {
|
||||||
_font._data = &_data;
|
_font._data = &_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue