On Sat, 9 Jan 2021 12:47:48 GMT, Pankaj Bansal <pban...@openjdk.org> wrote:
> Please review a fix for jdk16 > > Issue: In SwingSet2, if the user navigates through the demos, the demo gets > selected/starts on pressing left/right key only. There is no need to press > the "space" key. Earlier, on pressing the left/right key, only demo icon used > to get focused and user needed to press the "space" to actually select a demo. > > Cause: The SwingSet2 has JToggleButtons added to a ButtonGroup. Each > JToggleButton has an AbstractAction set on it, which loads the demo. Earlier, > when the user pressed Left/Right button, only the selected button used to > change. The Action set on JToggleButton used to perform only on pressing the > "Space" button. Now, the Action is performed on navigating the JToggleButtons > using Left/Right keys without the need to press the "space" key. > > This issue is a side effect of fix done for > https://bugs.openjdk.java.net/browse/JDK-8249548. The issues fixed in > JDK-8249548 were not present in JRadioButton as there was code available to > handle it in AquaButtonRadioUI and BasicRadioButtonUI. The fix done for > JDK-8249548 moved duplicate code from AquaButtonRadioUI and > BasicRadioButtonUI and moved it to BasicButtonUI, so this code is available > for JToggleButton and JRadioButton for all L&Fs. This was wrong as there is a > difference in behaviour for JRadioButtons added to ButtonGroup for AquaL&F > and other L&Fs. In AquaL&F, the AbstractAction set on JRadioButton is not > performed on button selection and user has to press "space". In other L&Fs, > the AbstractAction is performed on selection of Button itself without the > need to press "space". > > Fix: The current change fixes the issue in present bug and keeps the fixes > done in JDK-8249548. Following is the behaviour of JToggleButton and > JRadioButton for different L&Fs before JDK-8249548 fix, after JDK-8249548 fix > and after current fix. > > Before fix for JDK-8249548 > JToggleButton: > For all L&Fs, user can not navigate/select the buttons added to ButtonGroup > properly as mentioned in the JDK-8249548. > JRadioButton: > For Synth L&F (Nimbus L&F), user can not navigate/select the buttons added to > ButtonGroup. > For AquaL&F, user can select the buttons added to ButtonGroup by pressing > left/right key and needs to press the "space" to perform the set Action. > For Other L&Fs, user can select/navigate the buttons and the set Action is > also performed without pressing "space" > > After fix for JDK-8249548 > JToggleButton: > For all L&Fs, user can navigate/select the buttons added to ButtonGroups and > the AbstractAction set is performed without the need to press "space". > JRadioButton: > For all L&Fs, user can navigate/select the buttons added to ButtonGroups and > the AbstractAction set is performed without the need to press "space". > > After current fix: > JToggleButton: > For all L&Fs, user can navigate/select the buttons added to ButtonGroups. > User needs to press "space" to perform the set AbstractAction. > JRadioButton: > For AquaL&F, the behaviour before JDK-8249548 is restored, so user needs to > press the "space" to perform the set Action. > For all other L&Fs (including Synth L&F), the behaviour is same. User can > navigate/select the buttons added to ButtonGroups and set Action is performed > without pressing "space" > > I have run mach5 jobs with full jtreg/jck and all looks good. Links in JBS. > The test TestButtonGroupFocusTraversal.java is modified such that it fails > without current fix and passes after the fix. The fix also should be verified > by running SwingSet2. This pull request has now been integrated. Changeset: 28ff2de1 Author: Pankaj Bansal <pban...@openjdk.org> URL: https://git.openjdk.java.net/jdk16/commit/28ff2de1 Stats: 99 lines in 2 files changed: 92 ins; 1 del; 6 mod 8259237: Demo selection changes with left/right arrow key. No need to press space for selection. Reviewed-by: psadhukhan, kizune, serb ------------- PR: https://git.openjdk.java.net/jdk16/pull/99