On Wed, 23 Apr 2025 03:37:01 GMT, Sergey Bylokhov <s...@openjdk.org> wrote:
>> 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? If I understand your question, I think the answer is: Yes, the State.DEFAULTBUTTON constant is necessary for default JButtons to render correctly. In case I misunderstood the question here is some additional context: The only place `DEFAULTBUTTON` is referenced is here: protected State getButtonState(final AbstractButton b, final ButtonModel model) { if (!b.isEnabled()) return State.DISABLED; // The default button shouldn't draw its color when the window is inactive. // Changed for <rdar://problem/3614421>: Aqua LAF Buttons are incorrectly drawn disabled // all we need to do is make sure we aren't the default button any more and that // we aren't active, but we still are enabled if the button is enabled. // if we set dimmed we would appear disabled despite being enabled and click through // works so this now matches the text drawing and most importantly the HIG if (!AquaFocusHandler.isActive(b)) return State.INACTIVE; if (model.isArmed() && model.isPressed()) return State.PRESSED; if (model.isSelected() && isSelectionPressing()) return State.PRESSED; if ((b instanceof JButton) && ((JButton)b).isDefaultButton()) return State.DEFAULTBUTTON; return State.ACTIVE; } I tried removing the line that returned `DEFAULTBUTTON`, but then the test attached to this PR failed; the default button rendered like a generic Aqua JButton. So we still need some mechanism to make sure default buttons paint correctly. In this branch: that mechanism is State.DEFAULTBUTTON. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24778#discussion_r2055262099