aboutsummaryrefslogtreecommitdiff
path: root/application/main.cpp
diff options
context:
space:
mode:
authorKGB-8375 <60853993+KGB-8375@users.noreply.github.com>2021-03-24 13:36:48 -0400
committerKGB-8375 <27stopittj@gmail.com>2021-03-26 09:54:28 -0400
commit34bf68847998cdfff1360d6ed04339d36894c00d (patch)
treed606da427ac50b841e5c1d3b44b97d32bf94c470 /application/main.cpp
parentcbc973a5afb1a2ba321ea851f89e7189ce322460 (diff)
downloadPrismLauncher-34bf68847998cdfff1360d6ed04339d36894c00d.tar.gz
PrismLauncher-34bf68847998cdfff1360d6ed04339d36894c00d.tar.bz2
PrismLauncher-34bf68847998cdfff1360d6ed04339d36894c00d.zip
GH-3666 Fix multi-monitor dpi scaling on windows
Disable qt 5.6 DPI scaling and use windows' builtin DPI scaling, which works much better on multi-monitor setups
Diffstat (limited to 'application/main.cpp')
-rw-r--r--application/main.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/application/main.cpp b/application/main.cpp
index b0360c7e..e29f3453 100644
--- a/application/main.cpp
+++ b/application/main.cpp
@@ -4,6 +4,10 @@
#include <InstanceList.h>
#include <QDebug>
+#ifdef Q_OS_WIN
+ #include<windows.h>
+#endif
+
// #define BREAK_INFINITE_LOOP
// #define BREAK_EXCEPTION
// #define BREAK_RETURN
@@ -29,7 +33,19 @@ int main(int argc, char *argv[])
#endif
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
- QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
+ #ifdef Q_OS_WIN
+ BOOL (__stdcall *pFn)(void);
+ HINSTANCE hInstance=LoadLibrary("user32.dll");
+ if(hInstance) {
+ pFn = (BOOL (__stdcall*)(void))GetProcAddress(hInstance, "SetProcessDPIAware");
+ if(pFn)
+ pFn();
+ FreeLibrary(hInstance);
+ }
+ QApplication::setAttribute(Qt::AA_DisableHighDpiScaling);
+ #else
+ QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
+ #endif
QGuiApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
#endif