Thanks for your time in review Sergey and Semyon.

-----Original Message-----
From: Sergey Bylokhov 
Sent: Wednesday, March 7, 2018 8:11 AM
To: Shashidhara Veerabhadraiah <shashidhara.veerabhadra...@oracle.com>; Semyon 
Sadetsky <semyon.sadet...@oracle.com>
Cc: awt-dev@openjdk.java.net
Subject: Re: <AWT Dev> [11] JDK-8195738: scroll poistion in ScrollPane is reset 
after calling validate()

Looks fine.

On 05/03/2018 21:32, Shashidhara Veerabhadraiah wrote:
> Hi Sergey, I tested for the problem bug 6404832 and found that issue is not 
> happening anymore. Anyway this old bug was specific to Windows XP and there 
> was no problem with windows 2000, Windows 2003. But tested and found that 
> there is no issue as said in the bug.
> 
> I have modified the test per your comments and here is the new Webrev:
> http://cr.openjdk.java.net/~sveerabhadra/8195738/webrev.02/
> 
> Thanks and regards,
> Shashi
> 
> -----Original Message-----
> From: Sergey Bylokhov
> Sent: Tuesday, March 6, 2018 12:04 AM
> To: Shashidhara Veerabhadraiah 
> <shashidhara.veerabhadra...@oracle.com>; Semyon Sadetsky 
> <semyon.sadet...@oracle.com>
> Cc: 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 confirm that the bug6404832 is not reproducible after this 
> change(since part of it fix is dropped)?
> 
> Please use some meaningful name for the test + small typo in the
> test(poistion) please fix both before the push.
> 
> On 27/02/2018 00:45, Shashidhara Veerabhadraiah wrote:
>> Hi Semyon, Thanks for your help. I did some debugging from that 
>> perspective and could find the problem and the solution. Here is the 
>> new webrev, please review it:
>>
>> http://cr.openjdk.java.net/~sveerabhadra/8195738/webrev.01/
>>
>> The problem was that in the case of SCROLLBARS_NEVER, scroll bar info 
>> was set using setScrollInfo() with SIF_RANGE with ranges being (0, 0).
>> This forced the windows to pick a default value and hence reset it to 
>> that value every time. Now the logic is modified in a very similar 
>> fashion as the other scroll bar display modes but without displaying 
>> it using the new win api ShowScrollBar(). The scroll bar info is 
>> supplied with a proper range per the corresponding base component but 
>> without the scroll bar pane size(as we don’t display it). This should 
>> suffice a good range for the scroll bars to operate and correct 
>> itself if there is any out of range value is supplied.
>>
>> Thanks and regards,
>> Shashi
>>
>> *From:*Semyon Sadetsky
>> *Sent:* Tuesday, February 27, 2018 1:22 AM
>> *To:* shashidhara veerabhadraiah
>> <shashidhara.veerabhadra...@oracle.com>
>> *Cc:* awt-dev@openjdk.java.net
>> *Subject:* Re: <AWT Dev> [11] JDK-8195738: scroll poistion in 
>> ScrollPane is reset after calling validate()
>>
>> The bug was failed against Windows platform. So, I'd try to find the 
>> root cause why when the scroll is notified with the scrolled 
>> component size the scroll position is set to the wrong value.
>>
>> --Semyon
>>
>> On 02/26/2018 09:51 AM, shashidhara veerabhadraiah wrote:
>>
>>      I think I agree Semyon. Thanks for your detailed explanation.
>>
>>      So how do we approach on this? I see a different behaviour on other
>>      platforms. Shouldn’t we have a common behaviour across platforms? I
>>      agree with your analysis and hence should we change the behaviour on
>>      other platforms so that all of them will have the same behaviour?
>>
>>      Thanks and regards,
>>
>>      Shashi
>>
>>          On 26-Feb-2018, at 10:17 PM, Semyon Sadetsky
>>          <semyon.sadet...@oracle.com <mailto:semyon.sadet...@oracle.com>>
>>          wrote:
>>
>>          On 02/24/2018 05:27 AM, Shashidhara Veerabhadraiah wrote:
>>
>>              Hi Semyon, Thanks for your review and these questions help
>>              us to reach the right requirements.
>>
>>              Without this change, there is different behavior on windows
>>              compared to Mac/Linux platforms. Hence this change is
>>              required to make the behavior same across the platforms.
>>              Since the scroll pane control is not displayed for the
>>              SCROLLBARS_NEVER case and if not in the setScrollPosition()
>>              then how can the user can move to a different position?
>>              Since we used to update/recalculate the scroll pane geometry
>>              caused changes to move to a different position other than
>>              the setScrollPosition()!! This causes SCROLLBARS_NEVER mode
>>              as unusable as the user is unable to control the scrolling
>>              movement because neither he can set one setScrollPosition()
>>              nor the control is displayed to explicitly set the movement.
>>              Hope this answers your question.
>>
>>          You need to think once again about two facts I brought in my
>>          previous message.
>>
>>          1. User still may scroll using mouse wheel even when scrollbars
>>          are not visible.
>>
>>          2. Visibility of scrollbars doesn't affect the requirement to
>>          notify the scroll about the scrolled component size changes. If
>>          the scrolled component was 500x500 in size and its position in
>>          the 200x200 viewport was (300,300) after the size of the
>>          component is changed to 300x300 it may not be shown at the same
>>          position because the previously visible component area doesn't
>>          exist anymore and the scroll should be moved to (100,100). This
>>          should work in the same way regardless the selected scrlollbar
>>          visibility policy.
>>
>>          --Semyon
>>
>>
>>              Thanks and regards,
>>              Shashi
>>
>>              *From:*Semyon Sadetsky
>>              *Sent:*Saturday, February 24, 2018 2:12 AM
>>              *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()
>>
>>              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>
>>                  
>> <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()
>>
>>                  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#S
>> C
>> ROLLBARS_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#S
>> C
>> ROLLBARS_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#S
>> C
>> ROLLBARS_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
>>
> 
> 
> --
> Best regards, Sergey.
> 


--
Best regards, Sergey.

Reply via email to