<AWT Dev> [10] Review Request: 8187639 TrayIcon is not properly supported on macOS in multi-screen environment
Philip Race
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
> MultiResolutionImage.
> - Store this image in the L&F property.
> - In CTrayIcon read the MRI from the l&f and convert it back to the
> NSImage.
> - 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.
Ok
>
>> - 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
> displayMessage().
OK
>
>>
>> - Can perhaps attach an "after the fix" screen shot to the bug report ?
>
> done.
>
All seems fine then.
-phil.
>> On 09/27/2017 10:07 AM, Sergey Bylokhov wrote:
>>>
>>> Hello,
>>> Please review the fix for jdk10.
>>>
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8187639
>>> Webrev can be found at:
>>> http://cr.openjdk.java.net/~serb/8187639/webrev.01
>>>
>>> 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.
>>>
>>> Examples:
>>> The old message:
>>> http://cr.openjdk.java.net/~serb/8187639/images/Old.png
>>> The new(java -jar):
>>> http://cr.openjdk.java.net/~serb/8187639/images/Command%20line.png
>>> The new(bundles application):
>>> http://cr.openjdk.java.net/~serb/8187639/images/Bundled%20applicateion.png
>>>
>>>
>>>
>>
>
>
More information about the awt-dev
mailing list