Move setting of awtAppClassName from MainWindow to Main#9314
Move setting of awtAppClassName from MainWindow to Main#9314neilcsmith-net merged 1 commit intoapache:masterfrom
Conversation
| if (xtoolkit.getName().equals("sun.awt.X11.XToolkit")) { //NOI18N | ||
| // TODO those add --add-opens=java.desktop/sun.awt.X11=ALL-UNNAMED | ||
|
|
||
| //#183739 / JDK-6528430 - provide proper app name on Linux | ||
| try { | ||
| final Field awtAppClassName = xtoolkit.getDeclaredField("awtAppClassName"); //NOI18N |
There was a problem hiding this comment.
i find it curious that the field isn't final -> we are lucky here since final might mean final in not too far future.
I think this is ok since it is only moving code around. But all those hacks have to go away. Every --add-opens flag we set is a red flag.
There was a problem hiding this comment.
It's such a commonly used workaround that it's probably deliberately kept like that. An API or system property would be great for this, but it doesn't look like it's happening anytime soon! https://bugs.openjdk.org/browse/JDK-6528430 😄 This will also need consideration if/when there's a move from XWayland to Wakefield.
The only other workaround is to ensure the toolkit is initialized from the main thread, but that would lead to a shared WM_CLASS across all platform applications.
There was a problem hiding this comment.
startup metrics for this:
- getLocalGraphicsEnvironment() 23 ms
- configureAWTAppClassName() 9 ms
i am wondering if this too could be queued onto EDT so that it executes before splash. The reason why this block existed seems to be (see comment above) to log a custom msg if JDK can't initialize graphics. This might not be a big concern anymore.
There was a problem hiding this comment.
actually. discard that thought. First call to invokeLater() would have similar init paths.
There was a problem hiding this comment.
Yes, had already had and discarded same thought for similar reason. 😆
Move the setting of awtAppClassName for XToolkit into Main so that it is set before splash and import dialogs are created. This fixes issues with duplicate dock icons caused by incorrect WM_CLASS derived from this field value.
7e18153 to
4025747
Compare
|
Rebased and fixed (minor) conflict following merge of #9303 |
Move the setting of awtAppClassName for XToolkit into Main so that it is set before splash and import dialogs are created. This should fix issues with duplicate dock icons caused by incorrect WM_CLASS derived from this field value that need to be worked around in the various package builds.
Follow up to discussion in #9303