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 --- src/quick/quickwindowagent_win.cpp | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/quick/quickwindowagent_win.cpp b/src/quick/quickwindowagent_win.cpp index 46e72e3..aea554a 100644 --- a/src/quick/quickwindowagent_win.cpp +++ b/src/quick/quickwindowagent_win.cpp @@ -1,3 +1,7 @@ +// Copyright (C) 2023-2024 Stdware Collections (https://www.github.com/stdware) +// Copyright (C) 2021-2023 wangwenx190 (Yuhang Zhao) +// SPDX-License-Identifier: Apache-2.0 + #include "quickwindowagent_p.h" #include <QtQuick/QQuickPaintedItem> @@ -7,7 +11,7 @@ namespace QWK { -#if QWINDOWKIT_CONFIG(ENABLE_WINDOWS_SYSTEM_BORDER) +#if QWINDOWKIT_CONFIG(ENABLE_WINDOWS_SYSTEM_BORDERS) // TODO: Find a way to draw native border // We haven't found a way to place hooks in the Quick program and call the GDI API to draw // the native border area so that we'll use the emulated drawn border for now. @@ -41,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. @@ -52,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); @@ -65,7 +69,7 @@ BorderItem::~BorderItem() = default; bool BorderItem::isNormalWindow() const { - return !(context->window()->windowState() & + return !(context->window()->windowStates() & (Qt::WindowMinimized | Qt::WindowMaximized | Qt::WindowFullScreen)); } @@ -101,6 +105,7 @@ bool BorderItem::nativeEventFilter(const QByteArray &eventType, void *message, QT_NATIVE_EVENT_RESULT_TYPE *result) { Q_UNUSED(eventType) + const auto msg = static_cast<const MSG *>(message); switch (msg->message) { case WM_THEMECHANGED: @@ -125,6 +130,7 @@ bool BorderItem::sharedEventFilter(QObject *obj, QEvent *event) { Q_UNUSED(obj) + switch (event->type()) { case QEvent::WindowStateChange: { updateGeometry(); -- Gitblit v1.9.1