diff --git a/src/main.cpp b/src/main.cpp index f28c3d688..06e3d5292 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -33,9 +33,10 @@ void installCustomPalette(); int main(int argc, char *argv[]) { -// QApplication::setAttribute(Qt::AA_Use96Dpi, false); + QApplication::setAttribute(Qt::AA_Use96Dpi, true); #ifdef Q_OS_WIN32 -// QApplication::setAttribute(Qt::AA_DisableHighDpiScaling, true); + // QApplication::setAttribute(Qt::AA_DisableHighDpiScaling, true); + QApplication::setAttribute(Qt::AA_EnableHighDpiScaling, true); #endif // QApplication::setAttribute(Qt::AA_UseSoftwareOpenGL, true); QApplication a(argc, argv); diff --git a/src/widgets/basewindow.cpp b/src/widgets/basewindow.cpp index 7a64e3411..676a25249 100644 --- a/src/widgets/basewindow.cpp +++ b/src/widgets/basewindow.cpp @@ -415,12 +415,12 @@ bool BaseWindow::nativeEvent(const QByteArray &eventType, void *message, long *r case WM_DPICHANGED: { int dpi = HIWORD(msg->wParam); - float oldScale = this->scale; float _scale = dpi / 96.f; - float resizeScale = _scale / oldScale; - this->resize(static_cast(this->width() * resizeScale), - static_cast(this->height() * resizeScale)); + auto *prcNewWindow = reinterpret_cast(msg->lParam); + SetWindowPos(msg->hwnd, nullptr, prcNewWindow->left, prcNewWindow->top, + prcNewWindow->right - prcNewWindow->left, + prcNewWindow->bottom - prcNewWindow->top, SWP_NOZORDER | SWP_NOACTIVATE); this->nativeScale_ = _scale; this->updateScale();