Sine Striker
2024-01-01 c2e349f1c38b55fd12f8ae537e754fa6658ab631
src/quick/quickwindowagent_win.cpp
@@ -1,3 +1,6 @@
// Copyright (C) 2023-2024 Stdware Collections
// SPDX-License-Identifier: Apache-2.0
#include "quickwindowagent_p.h"
#include <QtQuick/QQuickPaintedItem>
@@ -7,7 +10,11 @@
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.
    class BorderItem : public QQuickPaintedItem,
                       public NativeEventFilter,
                       public SharedEventFilter {
@@ -97,6 +104,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:
@@ -107,9 +115,7 @@
            }
            case WM_SETTINGCHANGE: {
                if (!msg->wParam && msg->lParam &&
                    std::wcscmp(reinterpret_cast<LPCWSTR>(msg->lParam), L"ImmersiveColorSet") ==
                        0) {
                if (isImmersiveColorSetChange(msg->wParam, msg->lParam)) {
                    update();
                }
                break;
@@ -123,6 +129,7 @@
    bool BorderItem::sharedEventFilter(QObject *obj, QEvent *event) {
        Q_UNUSED(obj)
        switch (event->type()) {
            case QEvent::WindowStateChange: {
                updateGeometry();