From 4e7058084d51193e3c975bcddbe749e7fd29e356 Mon Sep 17 00:00:00 2001
From: Sine Striker <trueful@163.com>
Date: 周日, 19 5月 2024 23:29:49 +0800
Subject: [PATCH] Add check of maximum button hint

---
 src/core/contexts/cocoawindowcontext.mm |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/core/contexts/cocoawindowcontext.mm b/src/core/contexts/cocoawindowcontext.mm
index c26ccfa..9b9e009 100644
--- a/src/core/contexts/cocoawindowcontext.mm
+++ b/src/core/contexts/cocoawindowcontext.mm
@@ -510,7 +510,7 @@
     static inline void releaseWindowProxy(const WId windowId) {
         if (auto proxy = g_proxyList->take(windowId)) {
             // TODO: Determine if the window is valid
-            
+
             // The window has been destroyed
             // proxy->setSystemTitleBarVisible(true);
             delete proxy;
@@ -633,10 +633,11 @@
             }
 
             case QEvent::MouseButtonDblClick: {
-                if (me->button() == Qt::LeftButton && inTitleBar &&
-                    !delegate->isHostSizeFixed(host)) {
+                if (me->button() == Qt::LeftButton && inTitleBar && !m_context->isHostSizeFixed()) {
+                    Qt::WindowFlags windowFlags = delegate->getWindowFlags(host);
                     Qt::WindowStates windowState = delegate->getWindowState(host);
-                    if (!(windowState & Qt::WindowFullScreen)) {
+                    if ((windowFlags & Qt::WindowMaximizeButtonHint) &&
+                        !(windowState & Qt::WindowFullScreen)) {
                         if (windowState & Qt::WindowMaximized) {
                             delegate->setWindowState(host, windowState & ~Qt::WindowMaximized);
                         } else {

--
Gitblit v1.9.1