diff options
author | KGB-8375 <60853993+KGB-8375@users.noreply.github.com> | 2021-03-24 13:36:48 -0400 |
---|---|---|
committer | KGB-8375 <27stopittj@gmail.com> | 2021-03-26 09:54:28 -0400 |
commit | 34bf68847998cdfff1360d6ed04339d36894c00d (patch) | |
tree | d606da427ac50b841e5c1d3b44b97d32bf94c470 /application/main.cpp | |
parent | cbc973a5afb1a2ba321ea851f89e7189ce322460 (diff) | |
download | PrismLauncher-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.cpp | 18 |
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 |