From 8209cdfb1d85a40cc770f854d773c3a10f5ab576 Mon Sep 17 00:00:00 2001
From: Sine Striker <trueful@163.com>
Date: 周三, 20 12月 2023 17:32:57 +0800
Subject: [PATCH] Add hot-switch to agent

---
 src/core/contexts/abstractwindowcontext_p.h |   22 +++++++++++++++++++++-
 1 files changed, 21 insertions(+), 1 deletions(-)

diff --git a/src/core/contexts/abstractwindowcontext_p.h b/src/core/contexts/abstractwindowcontext_p.h
index 3115141..1882369 100644
--- a/src/core/contexts/abstractwindowcontext_p.h
+++ b/src/core/contexts/abstractwindowcontext_p.h
@@ -1,6 +1,15 @@
 #ifndef ABSTRACTWINDOWCONTEXT_P_H
 #define ABSTRACTWINDOWCONTEXT_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 <array>
 #include <memory>
 
@@ -64,8 +73,11 @@
         void showSystemMenu(const QPoint &pos);
         void notifyWinIdChange();
 
+        inline bool isEnabled() const;
+        void setEnabled(bool enabled);
+
     protected:
-        virtual void winIdChanged(QWindow *oldWindow) = 0;
+        virtual void winIdChanged(QWindow *oldWindow, bool isDestroyed) = 0;
 
     protected:
         QObject *m_host{};
@@ -81,6 +93,10 @@
         std::array<QObject *, WindowAgentBase::NumSystemButton> m_systemButtons{};
 
         QVariantHash m_windowAttributes;
+
+    private:
+        bool m_internalEnabled = false;
+        QPointer<QWindow> m_windowHandleCache;
     };
 
     inline QObject *AbstractWindowContext::host() const {
@@ -118,6 +134,10 @@
     }
 #endif
 
+    inline bool AbstractWindowContext::isEnabled() const {
+        return m_internalEnabled;
+    }
+
 }
 
 #endif // ABSTRACTWINDOWCONTEXT_P_H

--
Gitblit v1.9.1