<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:PMingLiU;
        panose-1:2 1 6 1 0 1 1 1 1 1;}
@font-face
        {font-family:Tunga;
        panose-1:0 0 4 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Georgia;
        panose-1:2 4 5 2 5 4 5 2 3 3;}
@font-face
        {font-family:"\@PMingLiU";
        panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;
        color:black;}
code
        {mso-style-priority:99;
        font-family:"Courier New";}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
span.membernamelink
        {mso-style-name:membernamelink;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body bgcolor=white lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>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:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><a href="http://cr.openjdk.java.net/~sveerabhadra/8195738/webrev.01/">http://cr.openjdk.java.net/~sveerabhadra/8195738/webrev.01/</a><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>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.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Thanks and regards,<br>Shashi<o:p></o:p></span></p><p class=MsoNormal><a name="_MailEndCompose"><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></a></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext'>From:</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext'> Semyon Sadetsky <br><b>Sent:</b> Tuesday, February 27, 2018 1:22 AM<br><b>To:</b> shashidhara veerabhadraiah <shashidhara.veerabhadraiah@oracle.com><br><b>Cc:</b> awt-dev@openjdk.java.net<br><b>Subject:</b> Re: <AWT Dev> [11] JDK-8195738: scroll poistion in ScrollPane is reset after calling validate()<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p>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.<o:p></o:p></p><p>--Semyon<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>On 02/26/2018 09:51 AM, shashidhara veerabhadraiah wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal>I think I agree Semyon. Thanks for your detailed explanation. <o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>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?<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Thanks and regards,<o:p></o:p></p></div><div><p class=MsoNormal>Shashi<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p><div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal>On 26-Feb-2018, at 10:17 PM, Semyon Sadetsky <<a href="mailto:semyon.sadetsky@oracle.com">semyon.sadetsky@oracle.com</a>> wrote:<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:white;font-variant-caps: normal;text-align:start;-webkit-text-stroke-width: 0px;word-spacing:0px'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>On 02/24/2018 05:27 AM, Shashidhara Veerabhadraiah wrote:<o:p></o:p></span></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt;font-variant-caps: normal;orphans:
                auto;text-align:start;widows: auto;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;word-spacing:0px'><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Hi Semyon, Thanks for your review and these questions help us to reach the right requirements.<span class=apple-converted-space> </span></span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>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.</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></blockquote><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif;background:white'>You need to think once again about two facts I brought in my previous message.</span><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif'><br><br><span style='background:white'>1. User still may scroll using mouse wheel even when scrollbars are not visible.</span><br><br><span style='background:white'>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.</span><br><br><span style='background:white'>--Semyon</span><br><br style='font-variant-caps: normal;text-align:start;-webkit-text-stroke-width: 0px;word-spacing:0px'><br></span><o:p></o:p></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Thanks and regards,<br>Shashi</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div><div><div style='border:none;border-top:solid windowtext 1.0pt;padding:3.0pt 0in 0in 0in;border-top-color:rgb(225,                       225, 225)'><div><p class=MsoNormal style='background:white'><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext'>From:</span></b><span class=apple-converted-space><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext'> </span></span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext'>Semyon Sadetsky<span class=apple-converted-space> </span><br><b>Sent:</b><span class=apple-converted-space> </span>Saturday, February 24, 2018 2:12 AM<br><b>To:</b><span class=apple-converted-space> </span>Shashidhara Veerabhadraiah<span class=apple-converted-space> </span><a href="mailto:shashidhara.veerabhadraiah@oracle.com"><span style='color:#954F72'><shashidhara.veerabhadraiah@oracle.com></span></a>;<span class=apple-converted-space> </span><a href="mailto:awt-dev@openjdk.java.net"><span style='color:#954F72'>awt-dev@openjdk.java.net</span></a><br><b>Subject:</b><span class=apple-converted-space> </span>Re: <AWT Dev> [11] JDK-8195738: scroll poistion in ScrollPane is reset after calling validate()</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></div></div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> <o:p></o:p></span></p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>On 2/23/18 10:57 AM, Shashidhara Veerabhadraiah wrote:<o:p></o:p></span></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>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?</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>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.</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></blockquote><div><p class=MsoNormal style='background:white'><span style='font-family:"Calibri",sans-serif'>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?<br><br>--Semyon<br><br><br></span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Thanks and regards,<br>Shashi</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><div><p class=MsoNormal style='background:white'><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext'>From:</span></b><span class=apple-converted-space><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext'> </span></span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext'>Semyon Sadetsky<span class=apple-converted-space> </span><br><b>Sent:</b><span class=apple-converted-space> </span>Friday, February 23, 2018 10:17 PM<br><b>To:</b><span class=apple-converted-space> </span>Shashidhara Veerabhadraiah<span class=apple-converted-space> </span><a href="mailto:shashidhara.veerabhadraiah@oracle.com"><span style='color:#954F72'><shashidhara.veerabhadraiah@oracle.com></span></a>;<span class=apple-converted-space> </span><a href="mailto:awt-dev@openjdk.java.net"><span style='color:#954F72'>awt-dev@openjdk.java.net</span></a><br><b>Subject:</b><span class=apple-converted-space> </span>Re: <AWT Dev> [11] JDK-8195738: scroll poistion in ScrollPane is reset after calling validate()</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></div></div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> <o:p></o:p></span></p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>On 2/22/18 8:23 PM, Shashidhara Veerabhadraiah wrote:<o:p></o:p></span></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Hi Semyon, Thanks for your review comments.</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Here are those different scroll bar pane modes and their description:</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div><table class=MsoNormalTable border=1 cellspacing=3 cellpadding=0 width=0 style='width:15.0in;border-top:none;border-left:solid #EEEEEE 1.0pt;border-bottom:solid #EEEEEE 1.0pt;border-right:solid windowtext 1.0pt;border-right-color:rgb(238, 238,                         238)'><tr><td nowrap valign=top style='border:none;background:#DEE3E9;padding:6.0pt 2.25pt 2.25pt 5.25pt;background-position:initial initial;background-repeat:initial initial'><div><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Arial",sans-serif'>Modifier and Type</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></td><td valign=top style='border:none;background:#DEE3E9;padding:6.0pt 2.25pt 2.25pt 5.25pt;background-position:initial initial;background-repeat:initial initial'><div><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Arial",sans-serif'>Field</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></td><td valign=top style='border:none;background:#DEE3E9;padding:6.0pt 2.25pt 2.25pt 5.25pt;background-position:initial initial;background-repeat:initial initial'><div><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Arial",sans-serif'>Description</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></td></tr><tr><td nowrap valign=top style='border:none;background:white;padding:6.0pt 0in 2.25pt 7.5pt;background-position:initial initial;background-repeat:initial initial'><div><p class=MsoNormal><code><span style='font-size:10.5pt;color:#353833'>static int</span></code><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></td><td valign=top style='border:none;background:white;padding:6.0pt 2.25pt 2.25pt 5.25pt;background-position:initial initial;background-repeat:initial initial'><div><p class=MsoNormal><span class=membernamelink><b><span style='font-size:10.5pt;font-family:"Courier New"'><a href="https://docs.oracle.com/javase/9/docs/api/java/awt/ScrollPane.html#SCROLLBARS_ALWAYS"><span style='color:#4A6782;text-decoration:none'>SCROLLBARS_ALWAYS</span></a></span></b></span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></td><td valign=top style='border:none;background:white;padding:6.0pt 0in 2.25pt 7.5pt;background-position:initial initial;background-repeat:initial initial'><div><p class=MsoNormal><span style='font-size:10.5pt;font-family:"Georgia",serif'>Specifies that horizontal/vertical scrollbars should always be shown regardless of the respective sizes of the scrollpane and child.</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></td></tr><tr><td nowrap valign=top style='border:none;background:#EEEEEF;padding:6.0pt 0in 2.25pt 7.5pt;background-position:initial                               initial;background-repeat:initial                               initial'><div><p class=MsoNormal><code><span style='font-size:10.5pt;color:#353833'>static int</span></code><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></td><td valign=top style='border:none;background:#EEEEEF;padding:6.0pt 2.25pt 2.25pt 5.25pt;background-position:initial initial;background-repeat:initial initial'><div><p class=MsoNormal><span class=membernamelink><b><span style='font-size:10.5pt;font-family:"Courier New"'><a href="https://docs.oracle.com/javase/9/docs/api/java/awt/ScrollPane.html#SCROLLBARS_AS_NEEDED"><span style='color:#4A6782;text-decoration:none'>SCROLLBARS_AS_NEEDED</span></a></span></b></span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></td><td valign=top style='border:none;background:#EEEEEF;padding:6.0pt 0in 2.25pt 7.5pt;background-position:initial                               initial;background-repeat:initial                               initial'><div><p class=MsoNormal><span style='font-size:10.5pt;font-family:"Georgia",serif'>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.</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></td></tr><tr><td nowrap valign=top style='border:none;background:white;padding:6.0pt 0in 2.25pt 7.5pt;background-position:initial initial;background-repeat:initial initial'><div><p class=MsoNormal><code><span style='font-size:10.5pt;color:#353833'>static int</span></code><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></td><td valign=top style='border:none;background:white;padding:6.0pt 2.25pt 2.25pt 5.25pt;background-position:initial initial;background-repeat:initial initial'><div><p class=MsoNormal><span class=membernamelink><b><span style='font-size:10.5pt;font-family:"Courier New"'><a href="https://docs.oracle.com/javase/9/docs/api/java/awt/ScrollPane.html#SCROLLBARS_NEVER"><span style='color:#4A6782;text-decoration:none'>SCROLLBARS_NEVER</span></a></span></b></span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></td><td valign=top style='border:none;background:white;padding:6.0pt 0in 2.25pt 7.5pt;background-position:initial initial;background-repeat:initial initial'><div><p class=MsoNormal><span style='font-size:10.5pt;font-family:"Georgia",serif'>Specifies that horizontal/vertical scrollbars should never be shown regardless of the respective sizes of the scrollpane and child.</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></td></tr></table><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></blockquote><div><p class=MsoNormal style='background:white'><span style='font-family:"Calibri",sans-serif'>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.</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Thanks and regards,<br>Shashi</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><div><p class=MsoNormal style='background:white'><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext'>From:</span></b><span class=apple-converted-space><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext'> </span></span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext'>Semyon Sadetsky<span class=apple-converted-space> </span><br><b>Sent:</b><span class=apple-converted-space> </span>Thursday, February 22, 2018 11:58 PM<br><b>To:</b><span class=apple-converted-space> </span>Shashidhara Veerabhadraiah<span class=apple-converted-space> </span><a href="mailto:shashidhara.veerabhadraiah@oracle.com"><span style='color:#954F72'><shashidhara.veerabhadraiah@oracle.com></span></a>;<span class=apple-converted-space> </span><a href="mailto:awt-dev@openjdk.java.net"><span style='color:#954F72'>awt-dev@openjdk.java.net</span></a><br><b>Subject:</b><span class=apple-converted-space> </span>Re: <AWT Dev> [11] JDK-8195738: scroll poistion in ScrollPane is reset after calling validate()</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></div></div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> <o:p></o:p></span></p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>Hi Shashi,<o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>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?<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:12.0pt;background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>--Semyon<o:p></o:p></span></p><div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>On 02/19/2018 11:08 PM, Shashidhara Veerabhadraiah wrote:<o:p></o:p></span></p></div></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>Hi All, Please review a code fix for the below bug.<o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> <o:p></o:p></span></p></div><div><p class=MsoNormal style='text-indent:.5in;background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>Bug:<span class=apple-converted-space> </span><a href="https://bugs.openjdk.java.net/browse/JDK-8195738"><span style='color:#954F72'>https://bugs.openjdk.java.net/browse/JDK-8195738</span></a><o:p></o:p></span></p></div><div><p class=MsoNormal style='text-indent:.5in;background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> <o:p></o:p></span></p></div><div><p class=MsoNormal style='text-indent:.5in;background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>Webrev:<span class=apple-converted-space> </span><a href="http://cr.openjdk.java.net/%7Esveerabhadra/8195738/webrev.00/"><span style='color:#954F72'>http://cr.openjdk.java.net/~sveerabhadra/8195738/webrev.00/</span></a><o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> <o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>Problematic platform: Windows only.<o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> <o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>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.<o:p></o:p></span></p></div><div style='margin-left:.5in'><p class=MsoNormal style='text-indent:9.6pt;background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>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<span class=apple-converted-space> </span><o:p></o:p></span></p></div><div style='margin-left:.5in'><p class=MsoNormal style='text-indent:9.6pt;background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>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.<o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> <o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>Thanks and regards,<br>Shashi<o:p></o:p></span></p></div></blockquote><div><p class=MsoNormal style='background:white'><span style='font-family:"Calibri",sans-serif'> </span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></blockquote><div><p class=MsoNormal style='background:white'><span style='font-family:"Calibri",sans-serif'> </span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></blockquote><div><p class=MsoNormal style='background:white'><span style='font-family:"Calibri",sans-serif'> </span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p></o:p></span></p></div></blockquote><p class=MsoNormal style='margin-bottom:12.0pt'><o:p> </o:p></p></div></blockquote></div><p class=MsoNormal><o:p> </o:p></p></div></blockquote><p class=MsoNormal><o:p> </o:p></p></div></body></html>