RFR: 8355203: [macos] AquaButtonUI and AquaRootPaneUI repaint default button unnecessarily [v2]

Sergey Bylokhov serb at openjdk.org
Fri Apr 25 07:24:53 UTC 2025


On Wed, 23 Apr 2025 20:36:37 GMT, Jeremy Wood <duke at openjdk.org> 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.
>
> Jeremy Wood has updated the pull request incrementally with one additional commit since the last revision:
> 
>   8344697: use `PULSED` again, but add comment for future reference

test/jdk/com/apple/laf/RootPane/RootPaneDefaultButtonTest.java line 116:

> 114:     }
> 115: 
> 116:     private static void test(Robot robot, AbstractButton buttonToClick, ButtonRenderingExpectation... expectations) throws Exception {

please split the long lines to have 80 chars per line

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/24778#discussion_r2059701077


More information about the client-libs-dev mailing list