From 273579bc32ed71879c3e1f034761f623c4c33219 Mon Sep 17 00:00:00 2001 From: spycrab Date: Thu, 10 May 2018 13:40:53 +0200 Subject: [PATCH] Qt/Win32: Fix font weight calculation --- Source/Core/DolphinQt2/Main.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Source/Core/DolphinQt2/Main.cpp b/Source/Core/DolphinQt2/Main.cpp index 6b1dda6f78..eb49052642 100644 --- a/Source/Core/DolphinQt2/Main.cpp +++ b/Source/Core/DolphinQt2/Main.cpp @@ -98,7 +98,7 @@ int main(int argc, char* argv[]) #ifdef _WIN32 // Get the default system font because Qt's way of obtaining it is outdated NONCLIENTMETRICS metrics = {}; - auto& logfont = metrics.lfMenuFont; + LOGFONT& logfont = metrics.lfMenuFont; metrics.cbSize = sizeof(NONCLIENTMETRICS); if (SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(metrics), &metrics, 0)) @@ -107,7 +107,12 @@ int main(int argc, char* argv[]) // thing QFont font = QApplication::font(); font.setFamily(QString::fromStdString(UTF16ToUTF8(logfont.lfFaceName))); - font.setWeight(logfont.lfWeight); + + // LOGFONT uses a scale from 1 to 1000 to represent font weight while Qt uses a scale from 0 + // to 99. LOGFONT also has a DONTCARE value which we have to ignore. + if (logfont.lfWeight != FW_DONTCARE) + font.setWeight((logfont.lfWeight / 10) - 1); + font.setItalic(logfont.lfItalic); font.setStrikeOut(logfont.lfStrikeOut); font.setUnderline(logfont.lfUnderline);