added gotToBottom and EnableNonClientDpiScaling

This commit is contained in:
fourtf
2017-09-21 17:34:41 +02:00
parent 3e24752477
commit 222eedcd21
18 changed files with 108 additions and 53 deletions
+33
View File
@@ -1,12 +1,41 @@
#include "application.hpp"
#include <QAbstractNativeEventFilter>
#include <QApplication>
#include <QDir>
#include <QLibrary>
#include <QStandardPaths>
#include <pajlada/settings/settingmanager.hpp>
#ifdef USEWINSDK
#include "windows.h"
#endif
namespace {
#ifdef USEWINSDK
class DpiNativeEventFilter : public QAbstractNativeEventFilter
{
public:
bool nativeEventFilter(const QByteArray &eventType, void *message, long *result) override
{
MSG *msg = reinterpret_cast<MSG *>(message);
if (msg->message == WM_NCCREATE) {
typedef BOOL(WINAPI * EnableNonClientDpiScaling)(HWND);
QLibrary user32("user32.dll", NULL);
EnableNonClientDpiScaling enableNonClientDpiScaling =
(EnableNonClientDpiScaling)user32.resolve("EnableNonClientDpiScaling");
if (enableNonClientDpiScaling)
enableNonClientDpiScaling(msg->hwnd);
}
return false;
}
};
#endif
inline bool initSettings(bool portable)
{
QString settingsPath;
@@ -38,6 +67,10 @@ int main(int argc, char *argv[])
{
QApplication a(argc, argv);
#ifdef USEWINSDK
a.installNativeEventFilter(new DpiNativeEventFilter);
#endif
a.setAttribute(Qt::AA_EnableHighDpiScaling, true);
// Options