On 2/22/18 8:23 PM, Shashidhara Veerabhadraiah wrote:
Hi Semyon, Thanks for your review comments.
Here are those different scroll bar pane modes and their description:
*Modifier and Type***
*Field*
*Description*
|static int|
*SCROLLBARS_ALWAYS
<https://docs.oracle.com/javase/9/docs/api/java/awt/ScrollPane.html#SCROLLBARS_ALWAYS>*
Specifies that horizontal/vertical scrollbars should always be shown
regardless of the respective sizes of the scrollpane and child.
|static int|
*SCROLLBARS_AS_NEEDED
<https://docs.oracle.com/javase/9/docs/api/java/awt/ScrollPane.html#SCROLLBARS_AS_NEEDED>*
Specifies that horizontal/vertical scrollbar should be shown only when
the size of the child exceeds the size of the scrollpane in the
horizontal/vertical dimension.
|static int|
*SCROLLBARS_NEVER
<https://docs.oracle.com/javase/9/docs/api/java/awt/ScrollPane.html#SCROLLBARS_NEVER>*
Specifies that horizontal/vertical scrollbars should never be shown
regardless of the respective sizes of the scrollpane and child.
This javadoc, you've copy-pasted here, doesn't explain why in your fix
the notification about changed child size is disabled for
SCROLLBARS_NEVER case.
Thanks and regards,
Shashi
*From:*Semyon Sadetsky
*Sent:* Thursday, February 22, 2018 11:58 PM
*To:* Shashidhara Veerabhadraiah
<shashidhara.veerabhadra...@oracle.com>; awt-dev@openjdk.java.net
*Subject:* Re: <AWT Dev> [11] JDK-8195738: scroll poistion in
ScrollPane is reset after calling validate()
Hi Shashi,
Can you clarify what is the principal difference between
SCROLLBARS_NEVER and other scroll policies that requires to avoid
updating the scroll geometry according to the inner component size?
--Semyon
On 02/19/2018 11:08 PM, Shashidhara Veerabhadraiah wrote:
Hi All, Please review a code fix for the below bug.
Bug: https://bugs.openjdk.java.net/browse/JDK-8195738
Webrev:
http://cr.openjdk.java.net/~sveerabhadra/8195738/webrev.00/
<http://cr.openjdk.java.net/%7Esveerabhadra/8195738/webrev.00/>
Problematic platform: Windows only.
Summary: This bug occurs only on windows platform and whereas the
behavior is different on Mac/Linux platforms. Now after this fix
there is common behavior across the platforms.
The main problem was with resetting the state of the scroll bars
even though the scroll bar panes are spawned with SCROLLBARS_NEVER
as the scroll bar display policy. This resetting should not occur
as the scroll bar display policy makes the
scroll bar panes invisible. Hence except the setScrollPosition()
calls, we don’t need to resize/update the scroll bars state upon
calling the scroll bars validation if SCROLLBARS_NEVER policy is
used as the scroll bars are not displayed.
Thanks and regards,
Shashi