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 |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/src/core/contexts/abstractwindowcontext_p.h b/src/core/contexts/abstractwindowcontext_p.h
index ecd2323..1882369 100644
--- a/src/core/contexts/abstractwindowcontext_p.h
+++ b/src/core/contexts/abstractwindowcontext_p.h
@@ -73,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{};
@@ -90,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 {
@@ -127,6 +134,10 @@
     }
 #endif
 
+    inline bool AbstractWindowContext::isEnabled() const {
+        return m_internalEnabled;
+    }
+
 }
 
 #endif // ABSTRACTWINDOWCONTEXT_P_H

--
Gitblit v1.9.1