From 79d98630fe80c08de82ffd041c85aa589f08013f Mon Sep 17 00:00:00 2001 From: Zhao Yuhang <2546789017@qq.com> Date: 周六, 06 1月 2024 13:21:09 +0800 Subject: [PATCH] improve qml implementation --- examples/qml/main.cpp | 3 +++ src/quick/quickwindowagent_win.cpp | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/examples/qml/main.cpp b/examples/qml/main.cpp index 8332f5d..3daf57f 100644 --- a/examples/qml/main.cpp +++ b/examples/qml/main.cpp @@ -4,6 +4,7 @@ #include <QtGui/QGuiApplication> #include <QtQml/QQmlApplicationEngine> +#include <QtQuick/QQuickWindow> #include <QWKQuick/qwkquickglobal.h> @@ -23,6 +24,8 @@ Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); #endif QGuiApplication application(argc, argv); + // Make sure alpha channel is requested, our special effects on Windows depends on it. + QQuickWindow::setDefaultAlphaBuffer(true); QQmlApplicationEngine engine; QWK::registerTypes(&engine); engine.load(QUrl(QStringLiteral("qrc:///main.qml"))); diff --git a/src/quick/quickwindowagent_win.cpp b/src/quick/quickwindowagent_win.cpp index 338dbfa..aea554a 100644 --- a/src/quick/quickwindowagent_win.cpp +++ b/src/quick/quickwindowagent_win.cpp @@ -45,7 +45,7 @@ BorderItem::BorderItem(QQuickItem *parent, AbstractWindowContext *context) : QQuickPaintedItem(parent), context(context) { - setAntialiasing(true); // We needs anti-aliasing to give us better result. + setAntialiasing(true); // We need anti-aliasing to give us better result. setFillColor({}); // Will improve the performance a little bit. setOpaquePainting(true); // Will also improve the performance, we don't draw // semi-transparent borders of course. @@ -56,7 +56,7 @@ anchors->setLeft(parentPri->left()); anchors->setRight(parentPri->right()); - setZ(9999); // Make sure our fake border always above everything in the window. + setZ(std::numeric_limits<qreal>::max()); // Make sure our fake border always above everything in the window. context->installNativeEventFilter(this); context->installSharedEventFilter(this); @@ -69,7 +69,7 @@ BorderItem::~BorderItem() = default; bool BorderItem::isNormalWindow() const { - return !(context->window()->windowState() & + return !(context->window()->windowStates() & (Qt::WindowMinimized | Qt::WindowMaximized | Qt::WindowFullScreen)); } -- Gitblit v1.9.1