From 2f2ee6571e9ce784db0488ade60816f09bd7448c Mon Sep 17 00:00:00 2001
From: SineStriker <trueful@163.com>
Date: 周三, 27 12月 2023 01:56:47 +0800
Subject: [PATCH] Finish customize system button pos for QtWidgets

---
 src/widgets/widgetwindowagent_p.h |   24 ++++++++++++++++++++----
 1 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/src/widgets/widgetwindowagent_p.h b/src/widgets/widgetwindowagent_p.h
index cd1e5c1..2f67779 100644
--- a/src/widgets/widgetwindowagent_p.h
+++ b/src/widgets/widgetwindowagent_p.h
@@ -1,12 +1,20 @@
 #ifndef WIDGETWINDOWAGENTPRIVATE_H
 #define WIDGETWINDOWAGENTPRIVATE_H
 
+//
+//  W A R N I N G !!!
+//  -----------------
+//
+// This file is not part of the QWindowKit API. It is used purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or may even be removed.
+//
+
+#include <QWKCore/qwkconfig.h>
 #include <QWKCore/private/windowagentbase_p.h>
 #include <QWKWidgets/widgetwindowagent.h>
 
 namespace QWK {
-
-    class WidgetBorderHandler;
 
     class WidgetWindowAgentPrivate : public WindowAgentBasePrivate {
         Q_DECLARE_PUBLIC(WidgetWindowAgent)
@@ -19,9 +27,17 @@
         // Host
         QWidget *hostWidget{};
 
-        std::unique_ptr<WidgetBorderHandler> borderHandler;
+#ifdef Q_OS_MAC
+        QWidget *systemButtonAreaWidget{};
+        std::unique_ptr<QObject> systemButtonAreaWidgetEventFilter;
+#endif
+
+#if defined(Q_OS_WINDOWS) && QWINDOWKIT_CONFIG(ENABLE_WINDOWS_SYSTEM_BORDERS)
+        void setupWindows10BorderWorkaround();
+        std::unique_ptr<QObject> borderHandler;
+#endif
     };
 
 }
 
-#endif // WIDGETWINDOWAGENTPRIVATE_H
\ No newline at end of file
+#endif // WIDGETWINDOWAGENTPRIVATE_H

--
Gitblit v1.9.1