Zhao Yuhang
2024-01-06 79d98630fe80c08de82ffd041c85aa589f08013f
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>
@@ -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();