From 917d0216c61bc1488e0c0a7cecbc562f265becf5 Mon Sep 17 00:00:00 2001
From: Sine Striker <trueful@163.com>
Date: 周三, 27 12月 2023 02:15:26 +0800
Subject: [PATCH] minor tweaks

---
 src/widgets/widgetwindowagent_mac.cpp |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/widgets/widgetwindowagent_mac.cpp b/src/widgets/widgetwindowagent_mac.cpp
index d09f7b3..48679cd 100644
--- a/src/widgets/widgetwindowagent_mac.cpp
+++ b/src/widgets/widgetwindowagent_mac.cpp
@@ -15,17 +15,19 @@
 
     protected:
         bool eventFilter(QObject *obj, QEvent *event) override {
+            Q_UNUSED(obj)
             switch (event->type()) {
                 case QEvent::Move:
                 case QEvent::Resize: {
-                    ctx->setSystemButtonArea(widget->geometry());
+                    QRect rect(widget->mapTo(widget->window(), {}), widget->size());
+                    ctx->setSystemButtonArea(rect);
                     break;
                 }
 
                 default:
                     break;
             }
-            return QObject::eventFilter(obj, event);
+            return false;
         }
 
     protected:
@@ -40,14 +42,15 @@
 
     void WidgetWindowAgent::setSystemButtonArea(QWidget *widget) {
         Q_D(WidgetWindowAgent);
+        auto ctx = d->context.get();
         d->systemButtonAreaWidget = widget;
         if (!widget) {
-            systemButtonAreaWidgetEventFilter.reset();
-            d->context->setSystemButtonArea({});
+            d->systemButtonAreaWidgetEventFilter.reset();
+            ctx->setSystemButtonArea({});
             return;
         }
-        systemButtonAreaWidgetEventFilter =
-            std::make_unique<SystemButtonAreaWidgetEventFilter>(widget, d->context);
+        d->systemButtonAreaWidgetEventFilter =
+            std::make_unique<SystemButtonAreaWidgetEventFilter>(widget, ctx);
     }
 
 }
\ No newline at end of file

--
Gitblit v1.9.1