From 88b5b56b6a67d93208eae3980af2f30da09dd8ae Mon Sep 17 00:00:00 2001
From: SineStriker <trueful@163.com>
Date: 周三, 27 12月 2023 01:10:59 +0800
Subject: [PATCH] Add notification observer on Mac

---
 src/widgets/widgetwindowagent_p.h |   28 +++++++++++++++++++++++-----
 1 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/src/widgets/widgetwindowagent_p.h b/src/widgets/widgetwindowagent_p.h
index 3a4e682..2f67779 100644
--- a/src/widgets/widgetwindowagent_p.h
+++ b/src/widgets/widgetwindowagent_p.h
@@ -1,12 +1,22 @@
 #ifndef WIDGETWINDOWAGENTPRIVATE_H
 #define WIDGETWINDOWAGENTPRIVATE_H
 
-#include <QWKCore/private/corewindowagent_p.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 WidgetWindowAgentPrivate : public CoreWindowAgentPrivate {
+    class WidgetWindowAgentPrivate : public WindowAgentBasePrivate {
         Q_DECLARE_PUBLIC(WidgetWindowAgent)
     public:
         WidgetWindowAgentPrivate();
@@ -14,12 +24,20 @@
 
         void init();
 
-        AbstractWindowContext * createContext() const override;
-
         // Host
         QWidget *hostWidget{};
+
+#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