From 2d2fc799bc698ebf7e7c8bcc394366d0d7bf071b Mon Sep 17 00:00:00 2001
From: Sine Striker <trueful@163.com>
Date: 周二, 20 2月 2024 18:18:39 +0800
Subject: [PATCH] Partially finish the bug after window close and reshow

---
 src/widgets/widgetwindowagent.h |   30 +++++++++++++++++++++---------
 1 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/src/widgets/widgetwindowagent.h b/src/widgets/widgetwindowagent.h
index e1411f8..2d73ef1 100644
--- a/src/widgets/widgetwindowagent.h
+++ b/src/widgets/widgetwindowagent.h
@@ -1,16 +1,20 @@
+// Copyright (C) 2023-2024 Stdware Collections (https://www.github.com/stdware)
+// Copyright (C) 2021-2023 wangwenx190 (Yuhang Zhao)
+// SPDX-License-Identifier: Apache-2.0
+
 #ifndef WIDGETWINDOWAGENT_H
 #define WIDGETWINDOWAGENT_H
 
 #include <QtWidgets/QWidget>
 
-#include <QWKCore/corewindowagent.h>
+#include <QWKCore/windowagentbase.h>
 #include <QWKWidgets/qwkwidgetsglobal.h>
 
 namespace QWK {
 
     class WidgetWindowAgentPrivate;
 
-    class QWK_WIDGETS_EXPORT WidgetWindowAgent : public CoreWindowAgent {
+    class QWK_WIDGETS_EXPORT WidgetWindowAgent : public WindowAgentBase {
         Q_OBJECT
         Q_DECLARE_PRIVATE(WidgetWindowAgent)
     public:
@@ -20,19 +24,27 @@
     public:
         bool setup(QWidget *w);
 
-        bool isHitTestVisible(QWidget *w) const;
-        void setHitTestVisible(QWidget *w, bool visible);
-        void setHitTestVisible(const QRect &rect, bool visible);
+        QWidget *titleBar() const;
+        void setTitleBar(QWidget *w);
 
         QWidget *systemButton(SystemButton button) const;
         void setSystemButton(SystemButton button, QWidget *w);
 
-        QWidget *titleBar() const;
-        void setTitleBar(QWidget *w);
+#ifdef Q_OS_MAC
+        // The system button area APIs are experimental, very likely to change in the future.
+        QWidget *systemButtonArea() const;
+        void setSystemButtonArea(QWidget *widget);
+
+        ScreenRectCallback systemButtonAreaCallback() const;
+        void setSystemButtonAreaCallback(const ScreenRectCallback &callback);
+#endif
+
+        bool isHitTestVisible(const QWidget *w) const;
+        void setHitTestVisible(const QWidget *w, bool visible = true);
 
     Q_SIGNALS:
-        void titleBarWidgetChanged(QWidget *w);
-        void systemButtonChanged(SystemButton button, QWidget *w);
+        void titleBarChanged(const QWidget *w);
+        void systemButtonChanged(SystemButton button, const QWidget *w);
 
     protected:
         WidgetWindowAgent(WidgetWindowAgentPrivate &d, QObject *parent = nullptr);

--
Gitblit v1.9.1