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