From c837319767bb609c6ec806336e49a347c77b11d3 Mon Sep 17 00:00:00 2001
From: Sine Striker <trueful@163.com>
Date: 周五, 22 12月 2023 21:30:53 +0800
Subject: [PATCH] Add non-system-border option on Windows

---
 src/widgets/widgetwindowagent_win.cpp |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/widgets/widgetwindowagent_win.cpp b/src/widgets/widgetwindowagent_win.cpp
index aa7e9c0..52b1a8c 100644
--- a/src/widgets/widgetwindowagent_win.cpp
+++ b/src/widgets/widgetwindowagent_win.cpp
@@ -1,5 +1,8 @@
 #include "widgetwindowagent_p.h"
 
+#include <QWKCore/qwkconfig.h>
+#include <QWKCore/qwkglobal.h>
+
 #include <QtGui/QPainter>
 
 #include <QWKCore/qwindowkit_windows.h>
@@ -7,8 +10,8 @@
 
 namespace QWK {
 
+#if QWINDOWKIT_CONFIG(ENABLE_WINDOWS_SYSTEM_BORDER)
     class WidgetBorderHandler : public QObject, public NativeEventFilter {
-        Q_OBJECT
     public:
         explicit WidgetBorderHandler(QWidget *widget, AbstractWindowContext *ctx)
             : QObject(ctx), widget(widget), ctx(ctx) {
@@ -65,9 +68,11 @@
         }
 
         bool eventFilter(QObject *obj, QEvent *event) override {
+            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,15 +109,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
     }
 
 }
-
-#include "widgetwindowagent_win.moc"

--
Gitblit v1.9.1