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.
- 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 displayMessage().
- Can perhaps attach an "after the fix" screen shot to the bug report ?
done.
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
--
Best regards, Sergey.