RFR: 6911375: mouseWheel has no effect without vertical scrollbar
Alexey Ivanov
aivanov at openjdk.java.net
Wed Feb 23 22:09:53 UTC 2022
On Wed, 23 Feb 2022 04:24:41 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:
> It is observed that mouseWheel doesn't scroll through a list if there is no scrollbar even though pressing PageUp/Down using keyboard moves up/down the list.
> Issue stems from the fact that BasicScrollPaneUI.Handler.mouseWheelMoved() skips the mouse wheel events when the scrollbar is not visible.
> Fixed to handle mouseWheelEvent even though scrollbar is not visible with the assumption that if both vertical and horizontal scrollbar is not visible, then assume default orientation to be vertical.
>
> Existing jtreg, jck tests are ok. All L&F works well with the fix and testcase works in all platforms except on mac which will be handled separately.
Why is the test excluded on macOS?
What will happen when the vertical scrollbar is hidden but can be scrolled and the horizontal scrollbar is visible?
test/jdk/javax/swing/JScrollPane/TestMouseWheelScroll.java line 80:
> 78: scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
> 79: frame.add(scrollPane);
> 80: frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Suggestion:
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
It's safer for tests.
test/jdk/javax/swing/JScrollPane/TestMouseWheelScroll.java line 101:
> 99: robot.mouseWheel(1);
> 100: robot.delay(1000);
> 101: if (scrollPane.getViewport().getViewPosition().equals(viewPosition)) {
This second call to `getViewPosition()` should also be on the EDT.
-------------
PR: https://git.openjdk.java.net/jdk/pull/7585
More information about the client-libs-dev
mailing list