Hello.

Please review the fix for jdk9. It will be backported to jdk8.

This fix is a rework of the fix for JDK-8033000:
http://hg.openjdk.java.net/jdk9/jdk9/jdk/rev/c2acbd0292f3
https://bugs.openjdk.java.net/browse/JDK-8033000

After the fix for JDK-8033000 all our L&F have the next wheel logic:
1 If shift is not pressed and vertical scroll bar is visible it should be scrolled. 2 If vertical scroll-bar is invisible then we should scroll horizontal scroll bar if possible. 3 If shift is pressed and horizontal scroll-bar is visible it should be scrolled, but if it is not visible then we should try vertical scroll-bar.

Note that the step 3 was added in the JDK-8033000. This caused an issue which previously was reproduced in Aqua L&F only. When the user uses diagonal scroll(top+right) and the application has only vertical scroll-bar, then we try to scroll in opposite directions:
- the top move generates the scroll down.
- scroll to the right generate the wheel+shift, and since the horizontal scroll-bar is not visible-> scroll up is executed.

In the fix the logic of step 3 is changed:
3 If shift is pressed and horizontal scroll-bar is visible it should be scrolled, otherwise do nothing.

Testcase for JDK-8033000 is updated.

Bug: https://bugs.openjdk.java.net/browse/JDK-8147994
Webrev can be found at: http://cr.openjdk.java.net/~serb/8147994/webrev.01

--
Best regards, Sergey.

Reply via email to