From 576654b6173e97425411010b2f40b3e9519b85b8 Mon Sep 17 00:00:00 2001
From: Zhao Yuhang <2546789017@qq.com>
Date: 周三, 07 5月 2025 18:44:38 +0800
Subject: [PATCH] fix possible QWKQuick crash

---
 src/core/contexts/abstractwindowcontext.cpp |   15 +++++----------
 1 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/src/core/contexts/abstractwindowcontext.cpp b/src/core/contexts/abstractwindowcontext.cpp
index 2d89ae1..f2fc730 100644
--- a/src/core/contexts/abstractwindowcontext.cpp
+++ b/src/core/contexts/abstractwindowcontext.cpp
@@ -88,8 +88,7 @@
         *button = WindowAgentBase::Unknown;
         for (int i = WindowAgentBase::WindowIcon; i <= WindowAgentBase::Close; ++i) {
             auto currentButton = m_systemButtons[i];
-            if (!currentButton || !m_delegate->isVisible(currentButton) ||
-                !m_delegate->isEnabled(currentButton)) {
+            if (!currentButton || !m_delegate->isVisible(currentButton)) {
                 continue;
             }
             if (m_delegate->mapGeometryToScene(currentButton).contains(pos)) {
@@ -122,17 +121,13 @@
             return false;
         }
 
-        for (int i = WindowAgentBase::WindowIcon; i <= WindowAgentBase::Close; ++i) {
-            auto currentButton = m_systemButtons[i];
-            if (currentButton && m_delegate->isVisible(currentButton) &&
-                m_delegate->isEnabled(currentButton) &&
-                m_delegate->mapGeometryToScene(currentButton).contains(pos)) {
-                return false;
-            }
+        WindowAgentBase::SystemButton button;
+        if (isInSystemButtons(pos, &button)) {
+            return false;
         }
 
         for (auto item : m_hitTestVisibleItems) {
-            if (item && m_delegate->isVisible(item) && m_delegate->isEnabled(item) &&
+            if (item && m_delegate->isVisible(item) &&
                 m_delegate->mapGeometryToScene(item).contains(pos)) {
                 return false;
             }

--
Gitblit v1.9.1