<AWT Dev>  Review Request: 8187639 TrayIcon is not properly supported on macOS in multi-screen environment
philip.race at oracle.com
Mon Oct 16 22:44:52 UTC 2017
On 10/16/17, 2:29 PM, Sergey Bylokhov wrote:
> On 16/10/2017 12:30, Phil Race wrote:
>> - Why do we scale the icon by 0.75 ? I could be missing something but
>> it appears that this will be based off the same image whether it
>> is retina or not
>> and I wonder if we really should be scaling it down on retina ?
> 0.75: This code makes the application icon smaller on the
> notification, things related to style/design.
> The same image is used from the LookAndFeel whether the screen is
> retina or not.
> To use HiDPI image it is necessary:
> - Read all representation from the native NSImage and store them in
> - Store this image in the L&F property.
> - In CTrayIcon read the MRI from the l&f and convert it back to the
> - Pass the nsimage to the native notification, the OS will select
> correct representation.
> I can start to work on this after the current fix.
OK .. you will be filing a new bug I take it.
>> - Are we losing anything by no longer knowing when the user has
>> dismissed the notification ?
> We can generate an action when the user clicks on the notification,
> but I preserved the old behavior, the click on the notification just
> close it as before.
>> - I suppose a test case for this is hard ?
> TrayIcon.displayMessage() is a platform dependent method, there are
> nothing to test except that we could show message/notification
> somewhere near tray area. We already have some tests which use
>> - Can perhaps attach an "after the fix" screen shot to the bug report ?
All seems fine then.
>> On 09/27/2017 10:07 AM, Sergey Bylokhov wrote:
>>> Please review the fix for jdk10.
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8187639
>>> Webrev can be found at:
>>> Since macOS 10.9(or even early) the main menubar is shown on all
>>> screens(not only on the main screen), which means that on both
>>> screens the trayIcons are visible.
>>> Our code is not ready for this situation, because we create a custom
>>> notification window and tries to place it near the trayicon on the
>>> main screen.
>>> Instead of updating the logic of showing the window, I migrated the
>>> code to the standard notification mechanism which is used in macOS.
>>> The old message:
>>> The new(java -jar):
>>> The new(bundles application):
More information about the awt-dev