From e33059ee1ef7e1be07490ad0245676ded42589f4 Mon Sep 17 00:00:00 2001
From: Zhao Yuhang <2546789017@qq.com>
Date: 周五, 22 12月 2023 23:12:16 +0800
Subject: [PATCH] win: allow dynamic switch dark mode

---
 src/widgets/widgetwindowagent_win.cpp |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/src/widgets/widgetwindowagent_win.cpp b/src/widgets/widgetwindowagent_win.cpp
index 9197dca..fb9dce3 100644
--- a/src/widgets/widgetwindowagent_win.cpp
+++ b/src/widgets/widgetwindowagent_win.cpp
@@ -3,10 +3,12 @@
 #include <QtGui/QPainter>
 
 #include <QWKCore/qwindowkit_windows.h>
+#include <QWKCore/qwkconfig.h>
 #include <QWKCore/private/nativeeventfilter_p.h>
 
 namespace QWK {
 
+#if QWINDOWKIT_CONFIG(ENABLE_WINDOWS_SYSTEM_BORDER)
     class WidgetBorderHandler : public QObject, public NativeEventFilter {
     public:
         explicit WidgetBorderHandler(QWidget *widget, AbstractWindowContext *ctx)
@@ -67,7 +69,8 @@
             Q_UNUSED(obj)
             switch (event->type()) {
                 case QEvent::Paint: {
-                    if (widget->windowState() & (Qt::WindowMinimized | Qt::WindowMaximized | Qt::WindowFullScreen))
+                    if (widget->windowState() &
+                        (Qt::WindowMinimized | Qt::WindowMaximized | Qt::WindowFullScreen))
                         break;
 
                     auto paintEvent = static_cast<QPaintEvent *>(event);
@@ -104,13 +107,16 @@
         QWidget *widget;
         AbstractWindowContext *ctx;
     };
+#endif
 
     void WidgetWindowAgentPrivate::setupWindows10BorderWorkaround() {
+#if QWINDOWKIT_CONFIG(ENABLE_WINDOWS_SYSTEM_BORDER)
         // Install painting hook
         auto ctx = context.get();
         if (ctx->property("needBorderPainter").toBool()) {
             std::ignore = new WidgetBorderHandler(hostWidget, ctx);
         }
+#endif
     }
 
 }

--
Gitblit v1.9.1