On Fri, 2 Oct 2020 11:08:23 GMT, Peter Zhelezniakov <pet...@openjdk.org> wrote:
> [JDK-8252015: [macos11] java.awt.TrayIcon requires updates for template > images](https://bugs.openjdk.java.net/browse/JDK-8252015) > > ### Problem > According to Apple's human interface guidelines, developers should use > template images for tray icons. This way icons look good when desktop theme > or wallpaper change. On the API level, this means setting the > `NSImage::isTemplate` flag. Currently there's no way in Java to set this > flag. Even if one uses a template (black and transparent pixels only) image, > MacOS will treat it as regular image. As a result, the image will not be > visible when using dark theme. > > ### Solution: > * Add a new system property, `java.awt.enableTemplateImages`, to indicate > that template images are being used by tray icons.When this property is set, > all tray icon images are treated as templates. It's the developers' > responsibility to ensure their images are indeed templates. This property > allows us to avoid new API and accidental behavior changes > * Value of this property is passed from Java into `NSImage::setTemplate` > * We need the tray icon image rendered by MacOS, so we use a button (rather > than a view) to host the image > > To do after CSR approval: > - [ ] Rename property `java.awt.` > - [ ] Add `TrayIcon` javadoc, use `@systemProperty` tag there This pull request has now been integrated. Changeset: 400dc76f Author: Peter Zhelezniakov <pet...@openjdk.org> Committer: Alexander Scherbatiy <alex...@openjdk.org> URL: https://git.openjdk.java.net/jdk/commit/400dc76f Stats: 56 lines in 4 files changed: 17 ins; 28 del; 11 mod 8252015: [macos11] java.awt.TrayIcon requires updates for template images Co-authored-by: Tres Finocchiaro <tres.finocchi...@gmail.com> Co-authored-by: Peter Zhelezniakov <pet...@openjdk.org> Reviewed-by: serb ------------- PR: https://git.openjdk.java.net/jdk/pull/481