On Wed, 23 Apr 2025 03:36:26 GMT, Sergey Bylokhov <[email protected]> wrote:
>> This removes the constant repainting of the AquaRootPaneUI's default button.
>>
>> A long time ago (before Mac OS Yosemite, around 2014) this was needed to
>> match Aqua's native experience. But the default button no longer pulses, so
>> we don't need to repaint ("pulse") the button continually.
>>
>> Here's a clip from a YouTube video I found demonstrating the pulsing effect
>> that this PR removes (you may want to turn your volume off):
>>
>> https://github.com/user-attachments/assets/496bc003-ccba-4178-81bc-765e96d94316
>>
>> This PR includes a test, but this test has never failed. (That is: this PR
>> does not resolve a failing test.) This test would fail if the default button
>> ever looked the same as a non-default button.
>>
>> My primary goal here was to remove the AquaButtonUI's AncestorListener, but
>> while we're here we might as well remove the AquaRootPaneUI's timer and
>> other cleanup.
>>
>> I tried and failed to rename the `private static final byte _pulsed`
>> constant. (More details
>> [here](https://github.com/openjdk/jdk/commit/89d0689f226b9e883df464e6f3e8c20074970499).)
>> If anyone has suggestions for how to rename that without errors please let
>> me know.
>
> src/java.desktop/macosx/classes/apple/laf/JRSUIConstants.java line 197:
>
>> 195: public static final State PRESSED = new State(_pressed);
>> 196: @Native private static final byte _pulsed = 5;
>> 197: public static final State DEFAULTBUTTON = new State(_pulsed);
>
> Is it still necessary to use the pulse property from JRS, or can we treat
> this button like any other and rely on the standard active/inactive state?
or default button appearance is different?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24778#discussion_r2055193619