summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2020-04-17 17:08:21 +0200
committerTor Arne Vestbø <tor.arne.vestbo@qt.io>2020-04-20 12:25:07 +0200
commit86f228b819aba71f0d6cd89303d8226d6567209b (patch)
tree22ac28c0e64fd83e28fdb4808d2d9267b38b140f /src/plugins/platforms
parent164110f7bbea7345de709edd092afa84fdde232c (diff)
macOS: Restore fallback sizes when setting application or window icons
We removed this logic in 059c3ae66a under the assumption that the icon would always provide a set of sizes, but for SVG icons this is not the case. Change-Id: Ib3cc5740bca32cf4068a71baf99b52fa536da2ca Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r--src/plugins/platforms/cocoa/qcocoaintegration.mm4
-rw-r--r--src/plugins/platforms/cocoa/qcocoawindow.mm9
2 files changed, 9 insertions, 4 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoaintegration.mm b/src/plugins/platforms/cocoa/qcocoaintegration.mm
index 245db429c5..9b57b89529 100644
--- a/src/plugins/platforms/cocoa/qcocoaintegration.mm
+++ b/src/plugins/platforms/cocoa/qcocoaintegration.mm
@@ -472,7 +472,9 @@ QList<QCocoaWindow *> *QCocoaIntegration::popupWindowStack()
void QCocoaIntegration::setApplicationIcon(const QIcon &icon) const
{
- NSApp.applicationIconImage = [NSImage imageFromQIcon:icon];
+ // Fall back to a size that looks good on the highest resolution screen available
+ auto fallbackSize = NSApp.dockTile.size.width * qGuiApp->devicePixelRatio();
+ NSApp.applicationIconImage = [NSImage imageFromQIcon:icon withSize:fallbackSize];
}
void QCocoaIntegration::beep() const
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
index 2cbe1b8684..069e9ce845 100644
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
@@ -904,10 +904,13 @@ void QCocoaWindow::setWindowIcon(const QIcon &icon)
QMacAutoReleasePool pool;
- if (icon.isNull())
+ if (icon.isNull()) {
iconButton.image = [NSWorkspace.sharedWorkspace iconForFile:m_view.window.representedFilename];
- else
- iconButton.image = [NSImage imageFromQIcon:icon];
+ } else {
+ // Fall back to a size that looks good on the highest resolution screen available
+ auto fallbackSize = iconButton.frame.size.height * qGuiApp->devicePixelRatio();
+ iconButton.image = [NSImage imageFromQIcon:icon withSize:fallbackSize];
+ }
}
void QCocoaWindow::setAlertState(bool enabled)