On 2/23/18 10:57 AM, Shashidhara Veerabhadraiah wrote:

Hi Semyon, Whenever the container is resized we used to update the scroll pane sizes/geometry regardless of the scroll bar display policies. This resizing make sense for the non SCROLLBARS_NEVER cases as the scroll pane is displayed or needed an update. This additional update posed issues for the SCROLLBARS_NEVER case where we are not supposed to display the scroll pane per the java doc, then why update?

Scroll pane geometry gets updated in 2 ways, one thro’ setScrollPosition() and childResized(). So I derived the conclusion based on the javadoc information that since we don’t display the scroll pane there is no need to update the scroll pane geometry based on the childResized() as it was altering the position already set by the setScrollPosition(). This behavior is same as the other non SCROLLBARS_NEVER mode and setting the scroll bar display to SCROLLBARS_NEVER didn’t made any difference.

The only difference of SCROLLBARS_NEVER from others I got from javadoc is that the scroll bar controls are hidden. So the scrolling itself happens in the same way as in the case of visible scroll bars but it can be only controlled by mouse wheel or programmatically. In my understanding this means that the notification about the scrolled component size changes should happen in the same way as for all other cases. I see no reason for the differentiation that your fix introduces. What will happen if to remove this notification for visible scroll bars modes?

--Semyon

Thanks and regards,
Shashi

*From:*Semyon Sadetsky
*Sent:* Friday, February 23, 2018 10:17 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()

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>
    <mailto:shashidhara.veerabhadra...@oracle.com>;
    awt-dev@openjdk.java.net <mailto: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


Reply via email to