From 3a5e5aea06e87710e24db0d7439ab81e3e3d301f Mon Sep 17 00:00:00 2001
From: Zhao Yuhang <2546789017@qq.com>
Date: 周六, 09 12月 2023 17:24:04 +0800
Subject: [PATCH] fix system menu

---
 src/core/corewindowagent.cpp |   25 ++++++++++++-------------
 1 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/src/core/corewindowagent.cpp b/src/core/corewindowagent.cpp
index 78ed335..d5dff5a 100644
--- a/src/core/corewindowagent.cpp
+++ b/src/core/corewindowagent.cpp
@@ -21,24 +21,23 @@
     void CoreWindowAgentPrivate::init() {
     }
 
-    bool CoreWindowAgentPrivate::setup(QWindow *window, WindowItemDelegate *delegate) {
-        Q_ASSERT(window);
-        if (!window) {
-            return false;
-        }
-
-        auto handler =
+    AbstractWindowContext *CoreWindowAgentPrivate::createContext() const {
+        return
 #ifdef Q_OS_WINDOWS
-            new Win32WindowContext(window, delegate)
+            new Win32WindowContext()
 #else
-            new QtWindowContext(window, delegate)
+            new QtWindowContext()
 #endif
-            ;
-        if (!handler->setup()) {
-            delete handler;
+                ;
+    }
+
+
+    bool CoreWindowAgentPrivate::setup(QObject *host, WindowItemDelegate *delegate) {
+        std::unique_ptr<AbstractWindowContext> ctx(createContext());
+        if (!ctx->setup(host, delegate)) {
             return false;
         }
-        context.reset(handler);
+        context = std::move(ctx);
         return true;
     }
 

--
Gitblit v1.9.1