On 9/27/19 8:29 am, Alan Snyder wrote:
It would be presumptuous for the JDK to assume that all Java desktop 
applications on macOS use AWT/Swing, much less a particular Swing LAF, and 
therefore incorrect to impose the limitations of AWT/Swing/Aqua LAF on all Java 
programs on macOS.

The AWT/Swing/Aqua LAF is a part of java.desktop and part of javase,
so even one tck bug in any place of it will affect the whole jdk. This is
the reason why dark mode will be marked as unsupported in the upcoming release
and light mode will be used by default.
For convenience in the new version I added some options to disable this fix, or
force some specific mode.

http://cr.openjdk.java.net/~serb/8231438/webrev.02

Note that the behavior of the option might be changed in the future release, or 
it might
be removed completely. But I assume it will work till we realize how to support
light and dark mode, and switch between them at runtime.

CSR will be created after technical review.


By the way, I tried to get Apple to make the dark mode opt-in configurable in 
the command line case, but they were not convinced.

I also filed a bug with Apple to support dark mode in JRS, but nothing happened.

Maybe Oracle has more leverage with Apple than I have? One can hope.

   Alan



On Sep 26, 2019, at 11:32 PM, Sergey Bylokhov <sergey.bylok...@oracle.com> 
wrote:

Not sure that it will be possible to make a "public" switch to disable/enable 
this feature,
because both options have to be officially supported and pass all related tests.
I need to double-check this.

On 9/26/19 11:00 pm, Alan Snyder wrote:
No, it works on a modified JDK 12 whose linked SDK version is 10.14 (or as a 
bundled app with NSRequiresAquaSystemAppearance = NO).
On Sep 26, 2019, at 10:52 PM, Sergey Bylokhov <sergey.bylok...@oracle.com> 
wrote:

On 9/26/19 6:17 pm, Alan Snyder wrote:
I have a LAF that supports dark mode, so I need this new behavior to be 
configurable. When using my LAF, the (user selected) default appearance should 
continue to be used.

I guess you L&F is working on jdk12? If yes then nothing will be changed for it.

   Alan
On Sep 26, 2019, at 5:38 PM, Sergey Bylokhov <sergey.bylok...@oracle.com> wrote:

Hello.
Please review the fix for JDK 14.

Bug: https://bugs.openjdk.java.net/browse/JDK-8231438
Fix: http://cr.openjdk.java.net/~serb/8231438/webrev.01

In jdk13 we started to use SDK 10.14 to build JDK, which automatically opt-in 
support of dark mode:
--------------
"The system assumes that apps linked against the macOS 10.14 or later SDK support 
both light and dark appearances"
https://developer.apple.com/documentation/appkit/nsappearancecustomization/choosing_a_specific_appearance_for_your_macos_app?language=objc
--------------

Unfortunately we dark mode still unsupported by the AWT/Swing, because of:
- JavaRuntimeSupport Framework which is used by the Aqua L&F to draw the 
"native"
   appearance does not provide "dark mode" appearance, the bug is filed to 
Apple.
   https://bugs.openjdk.java.net/browse/JDK-8228555
- In a few places, we mix the "native" colors used by the system and default 
colors
   used by the Swing. For example, we may use a transparent white selection 
"native"
   color which is invisible on top of white text fields.

While the bugs above are not fixed we may opt-out the dark mode:
-------------
Supporting Dark Mode is strongly encouraged. Use the 
NSRequiresAquaSystemAppearance key to opt out temporarily only while you work 
on improvements to your app's Dark Mode support. If you do not plan to support 
a dark appearance at all, apply a light appearance to your entire app, as 
described in Assign a Specific Appearance to Your App.
https://developer.apple.com/documentation/appkit/nsappearancecustomization/choosing_a_specific_appearance_for_your_macos_app?language=objc
-------------

I tried to disable it via plist.info but it does not work for "java -jar" case, 
so I disabled it in the code
Some constants in one test were updated to work on dark and light mode, but an 
updated test still reproduce the initial bug.


--
Best regards, Sergey.



--
Best regards, Sergey.



--
Best regards, Sergey.




--
Best regards, Sergey.

Reply via email to