From 8bb33c2509a9c7011bba5f6cade34dc293fb85af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Thu, 22 Feb 2018 09:24:32 +0100 Subject: [PATCH] Cocoa: Fix incorrect QSystemTrayIcon::geometry() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The coordinate conversion was wrong. Use QCocoaScreen::mapFromNative() instead. Task-number: QTBUG-53184 Change-Id: I50f18d68ba5d7e1cb5046523a608bfa2e076d7ea Reviewed-by: Gabriel de Dietrich Reviewed-by: Morten Johan Sørvig --- src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm b/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm index f4c968ab57..5e6913a89a 100644 --- a/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm +++ b/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm @@ -84,6 +84,8 @@ #include "qt_mac_p.h" #include "qcocoahelpers.h" +#include "qcocoaintegration.h" +#include "qcocoascreen.h" #include #import @@ -385,9 +387,8 @@ QT_END_NAMESPACE } -(QRectF)geometry { if (NSWindow *window = [[item view] window]) { - NSRect screenRect = [[window screen] frame]; - NSRect windowRect = [window frame]; - return QRectF(windowRect.origin.x, screenRect.size.height-windowRect.origin.y-windowRect.size.height, windowRect.size.width, windowRect.size.height); + if (QCocoaScreen *screen = QCocoaIntegration::instance()->screenForNSScreen([window screen])) + return screen->mapFromNative([window frame]); } return QRectF(); }