Add mac system tray fix as deployed on the build machine
authorDaniel Molkentin <danimo@owncloud.com>
Mon, 18 Jan 2016 15:16:28 +0000 (16:16 +0100)
committerDaniel Molkentin <danimo@owncloud.com>
Mon, 18 Jan 2016 15:18:53 +0000 (16:18 +0100)
Fixes #3918

admin/qt/patches/0019-Ensure-system-tray-icon-is-prepared-even-when-menu-bar.patch [new file with mode: 0644]
admin/qt/patches/README.md

diff --git a/admin/qt/patches/0019-Ensure-system-tray-icon-is-prepared-even-when-menu-bar.patch b/admin/qt/patches/0019-Ensure-system-tray-icon-is-prepared-even-when-menu-bar.patch
new file mode 100644 (file)
index 0000000..afb9ea5
--- /dev/null
@@ -0,0 +1,39 @@
+From cf6881c03d9f08c6ace83defe461423bb87f30d8 Mon Sep 17 00:00:00 2001
+From: =?utf8?q?Tor=20Arne=20Vestb=C3=B8?= <tor.arne.vestbo@theqtcompany.com>
+Date: Fri, 15 Jan 2016 14:15:51 +0100
+Subject: [PATCH] OS X: Ensure system tray icon is prepared even when menu bar
+ is hidden
+
+On OS X 10.11 (El Capitan) the system menu bar can be automatically
+hidden, in which case the menu bar height is reported to be 0 when
+using the menuBarHeight API.
+
+This resulted in failing to prepare an image for the system tray
+icon item, making the tray item "invisible".
+
+Instead we now use the [[NSStatusBar systemStatusBar] thickness]
+API, which returns the correct height regardless of the menu bar
+being hidden or not.
+
+Task-number: QTBUG-48960
+Change-Id: I208fb8df13754964a6f254cadfbff06dd56c6bab
+---
+ src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm b/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm
+index a3ffb5b..8152c57 100644
+--- a/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm
++++ b/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm
+@@ -198,7 +198,7 @@ void QCocoaSystemTrayIcon::updateIcon(const QIcon &icon)
+     // current OS X versions is 22 points. Provide some future-proofing
+     // by deriving the icon height from the menu height.
+     const int padding = 4;
+-    const int menuHeight = [[[NSApplication sharedApplication] mainMenu] menuBarHeight];
++    const int menuHeight = [[NSStatusBar systemStatusBar] thickness];
+     const int maxImageHeight = menuHeight - padding;
+     // Select pixmap based on the device pixel height. Ideally we would use
+-- 
+2.6.2.2.g1b5ffa3
+
index 57050690d68cdd651d7f90d866edadb048c2d213..79ce7e7549e2995371bb517d26586512ad648756 100644 (file)
@@ -37,6 +37,7 @@ purpose is outlined in each patches' front matter.
 * 0013-Make-UnknownAccessibility-not-block-requests.patch
 * 0015-Remove-legacy-platform-code-in-QSslSocket-for-OS-X-1.patch
 * 0016-Fix-possible-crash-when-passing-an-invalid-PAC-URL.patch
+* 0019-Ensure-system-tray-icon-is-prepared-even-when-menu-bar.patch
 
 ### Not submitted to be part of any release:
 * 0006-Fix-force-debug-info-with-macx-clang_NOUPSTREAM.patch