Community
Participate
Working Groups
Build Identifier: 3.6.0.v20100513 If I define a set of icons to use in my RCP app via the windowImages property, they should replace the launcher icon once the app loads on Mac, so that the window icon is displayed in the Dock and app switcher. I have spent total about 10 hours debugging this, always assuming this is a problem with my configuration, but after debugging through the platform code, I now believe this is a bug introduced by the new progress display over the icon. Essentially, this is how I believe the icon lifecycle happens during startup: - the launcher icon is displayed (from the icns file) - the Progress reporting in org.eclipse.swt.widgets.TaskItem reports progress, it takes the icon currently in use, which somehow ends up with a low-res version of the launcher icon (via the call OS.objc_msgSend(this.id, OS.sel_applicationIconImage); in NSApplication.applicationIconImage() ) - the icon from windowImages is set, it stays as the app icon in the dock for some short period of time - the icon is replaced with the earlier icon with a new progress This is IMO a serious problem, as the low-res icon on Mac really makes a bad impression in terms of the (RCP) app quality, and also since this is a regression from Galileo. Reproducible: Always Steps to Reproduce: 1. Create RCP app on Mac using PDE 2. Define the app window icons (large res like 256x256) via the windowImages property 3. Launch the app Watch the dock icon change from: launcher -> low res launcher -> proper icon -> low res launcher
What happens when you export and run that application? Does it works fine?
(In reply to comment #1) > What happens when you export and run that application? Does it works fine? If it works fine, then this bug is a duplicate of Bug# 304778. Assigning to PDE to review this.
It actually does behave a bit different: - when I launch from PDE, the App ends up with a high-res default icon (paper with ruler, pen and brush), instead of my icon - when I launch the exported product, the App ends up with a low-res version of the launcher icon - when I launch the exported product without launcher icon (just removed the icns from the product definition), the App also has the nice high-res default icon It seems that there are two problems: - when I have icns file, the platform derives a lower res version of it (32x32 it seems) for the purpose of reporting progress - the platform does not take into account that the app icon might be defined in the windowImages property and the dock/window icon might change mid-startup as a result of that
Is there a workaround for this for now, such as turning off the progress bar on the dock icon?
I have found a workaround for this (purely by coincidence), which also explains why Eclipse itself does not exhibit this problem. In my Application class (implements org.eclipse.equinox.app.IApplication) I have copied some code from the Application class in org.eclipse.ui.ide.application to deal with Workspace switching. My app icon suddenly got fixed, and I narrowed the code down to those couple lines of code in the start () method: // look and see if there's a splash shell we can parent off of Shell shell = getSplashShell(display); if (shell != null) { shell.setText(ChooseWorkspaceDialog.getWindowTitle()); shell.setImages(Dialog.getDefaultImages()); } the setImages apparently fixes this bug.
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet. If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant. -- The automated Eclipse Genie.
This bug was marked as stalebug a while ago. Marking as wontfix. If this report is still relevant for the current release, please reopen and remove the stalebug whiteboard tag.