<AWT Dev> Integrated: 8252015: [macos11] java.awt.TrayIcon requires updates for template images
Peter Zhelezniakov
peterz at openjdk.java.net
Tue Jan 12 11:53:00 UTC 2021
On Fri, 2 Oct 2020 11:08:23 GMT, Peter Zhelezniakov <peterz at 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 <peterz at openjdk.org>
Committer: Alexander Scherbatiy <alexsch at 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.finocchiaro at gmail.com>
Co-authored-by: Peter Zhelezniakov <peterz at openjdk.org>
Reviewed-by: serb
-------------
PR: https://git.openjdk.java.net/jdk/pull/481
More information about the awt-dev
mailing list