<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" 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=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:"Yu Gothic";
        panose-1:2 11 4 0 0 0 0 0 0 0;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"Iosevka Fixed SS16";
        panose-1:2 0 5 9 3 0 0 0 0 4;}
@font-face
        {font-family:"Times New Roman \(Body CS\)";
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:"\@Yu Gothic";
        panose-1:2 11 4 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Iosevka Fixed SS16 ";
        panose-1:2 0 5 9 3 0 0 0 0 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:10.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Iosevka Fixed SS16";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16"">Thank you, John!<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16"">I've added a video clip for the convenience.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16"">-andy<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
<div id="mail-editor-reference-message-container">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">John Hendrikx <john.hendrikx@gmail.com><br>
<b>Date: </b>Wednesday, July 12, 2023 at 17:44<br>
<b>To: </b>Andy Goryachev <andy.goryachev@oracle.com>, Ajit Ghaisas <ajit.ghaisas@oracle.com><br>
<b>Cc: </b>openjfx-dev@openjdk.org <openjfx-dev@openjdk.org><br>
<b>Subject: </b>Re: [External] : Re: ListView with ImageViews for cells very bugged?<o:p></o:p></span></p>
</div>
<p>I've managed to reproduce it -- it seems it may be a regression, or it is exposing a new bug after a fix done to the scrollbar (in 19.0.2.1 I can't reproduce it, but I also can't fully click the scrollbar back up).  In 21-ea-24 I can reproduce it by scrolling
 all the way down, then trying to "click" it back up not using the scrollbar thumb.<o:p></o:p></p>
<p>I created this ticket to track the issue: <a href="https://bugs.openjdk.org/browse/JDK-8311983">
https://bugs.openjdk.org/browse/JDK-8311983</a><o:p></o:p></p>
<p>--John<o:p></o:p></p>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">On 12/07/2023 18:37, Andy Goryachev wrote:<o:p></o:p></span></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16 "">I have a video clip of how to reproduce the exception.  Do you mind creating a bug?</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16 ""> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16 "">Thank you</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16 "">-andy</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16 ""> </span><o:p></o:p></p>
<div id="mail-editor-reference-message-container">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">John Hendrikx <a href="mailto:john.hendrikx@gmail.com">
<john.hendrikx@gmail.com></a><br>
<b>Date: </b>Wednesday, July 12, 2023 at 09:33<br>
<b>To: </b>Andy Goryachev <a href="mailto:andy.goryachev@oracle.com"><andy.goryachev@oracle.com></a>, Ajit Ghaisas
<a href="mailto:ajit.ghaisas@oracle.com"><ajit.ghaisas@oracle.com></a><br>
<b>Cc: </b><a href="mailto:openjfx-dev@openjdk.org">openjfx-dev@openjdk.org</a> <a href="mailto:openjfx-dev@openjdk.org">
<openjfx-dev@openjdk.org></a><br>
<b>Subject: </b>Re: [External] : Re: ListView with ImageViews for cells very bugged?</span><o:p></o:p></p>
</div>
<p>I'm unable to get this one myself, but the trace can hopefully point us to the problem.<o:p></o:p></p>
<p>I also find that the behavior of the Horizontal scrollbar leaves a lot to be desired.  Clicking in the empty area should shift it by a full view width, but it only shifts by like 16 pixels orso.<o:p></o:p></p>
<p>So there are some bugs, but at least not quite as severe as I thought.<o:p></o:p></p>
<p>--John<o:p></o:p></p>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">On 12/07/2023 18:28, Andy Goryachev wrote:</span><o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16 "">... and just by randomly clicking on the scrollbar I got this:</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16 ""> </span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">Exception in thread "JavaFX Application Thread"
<u>java.lang.IndexOutOfBoundsException</u>: Index -1 out of bounds for length 2</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at java.base/jdk.internal.util.Preconditions.outOfBounds(<u>Preconditions.java:100</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(<u>Preconditions.java:106</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at java.base/jdk.internal.util.Preconditions.checkIndex(<u>Preconditions.java:302</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at java.base/java.util.Objects.checkIndex(<u>Objects.java:359</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at java.base/java.util.ArrayList.get(<u>ArrayList.java:427</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.controls/javafx.scene.control.skin.VirtualFlow.updateCellSize(<u>VirtualFlow.java:3099</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.controls/javafx.scene.control.skin.VirtualFlow.positionCell(<u>VirtualFlow.java:1975</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.controls/javafx.scene.control.skin.VirtualFlow.scrollPixels(<u>VirtualFlow.java:1650</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.controls/javafx.scene.control.skin.VirtualFlow.tryScrollOneCell(<u>VirtualFlow.java:1565</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.controls/javafx.scene.control.skin.VirtualFlow.scrollTo(<u>VirtualFlow.java:1536</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.controls/com.sun.javafx.scene.control.VirtualScrollBar.adjustValue(<u>VirtualScrollBar.java:142</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.controls/com.sun.javafx.scene.control.behavior.ScrollBarBehavior.lambda$20(<u>ScrollBarBehavior.java:162</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.controls/com.sun.javafx.scene.control.behavior.ScrollBarBehavior.trackPress(<u>ScrollBarBehavior.java:173</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.controls/javafx.scene.control.skin.ScrollBarSkin.lambda$7(<u>ScrollBarSkin.java:411</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(<u>CompositeEventHandler.java:86</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(<u>EventHandlerManager.java:232</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(<u>EventHandlerManager.java:189</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(<u>CompositeEventDispatcher.java:59</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(<u>BasicEventDispatcher.java:58</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(<u>EventDispatchChainImpl.java:114</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(<u>BasicEventDispatcher.java:56</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.controls/javafx.scene.control.skin.VirtualFlow.lambda$2(<u>VirtualFlow.java:369</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(<u>EventDispatchChainImpl.java:114</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(<u>BasicEventDispatcher.java:56</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(<u>EventDispatchChainImpl.java:114</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(<u>BasicEventDispatcher.java:56</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(<u>EventDispatchChainImpl.java:114</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(<u>BasicEventDispatcher.java:56</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(<u>EventDispatchChainImpl.java:114</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(<u>BasicEventDispatcher.java:56</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(<u>EventDispatchChainImpl.java:114</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(<u>EventUtil.java:74</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(<u>EventUtil.java:54</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.base/javafx.event.Event.fireEvent(<u>Event.java:198</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.graphics/javafx.scene.Scene$MouseHandler.process(<u>Scene.java:3984</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.graphics/javafx.scene.Scene.processMouseEvent(<u>Scene.java:1890</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(<u>Scene.java:2708</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(<u>GlassViewEventHandler.java:411</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(<u>GlassViewEventHandler.java:1</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at java.base/java.security.AccessController.doPrivileged(<u>AccessController.java:399</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$2(<u>GlassViewEventHandler.java:450</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(<u>QuantumToolkit.java:424</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(<u>GlassViewEventHandler.java:449</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(<u>View.java:551</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.graphics/com.sun.glass.ui.View.notifyMouse(<u>View.java:937</u>)</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="font-size:12.0pt;color:black">      at javafx.graphics/com.sun.glass.ui.mac.MacView.notifyMouse(<u>MacView.java:127</u>)</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16 ""> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16 ""> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16 "">-andy</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16 ""> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16 ""> </span><o:p></o:p></p>
<div id="mail-editor-reference-message-container">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">John Hendrikx <a href="mailto:john.hendrikx@gmail.com">
<john.hendrikx@gmail.com></a><br>
<b>Date: </b>Wednesday, July 12, 2023 at 09:25<br>
<b>To: </b>Ajit Ghaisas <a href="mailto:ajit.ghaisas@oracle.com"><ajit.ghaisas@oracle.com></a><br>
<b>Cc: </b><a href="mailto:openjfx-dev@openjdk.org">openjfx-dev@openjdk.org</a> <a href="mailto:openjfx-dev@openjdk.org">
<openjfx-dev@openjdk.org></a>, Andy Goryachev <a href="mailto:andy.goryachev@oracle.com">
<andy.goryachev@oracle.com></a><br>
<b>Subject: </b>[External] : Re: ListView with ImageViews for cells very bugged?</span><o:p></o:p></p>
</div>
<p>Hi Ajit,<o:p></o:p></p>
<p>Thanks for checking, that is indeed a bit of a beginner mistake there... sorry for that.
<o:p></o:p></p>
<p>I added the line, and it is much improved (luckily), but I still see issues 2 and 3.<o:p></o:p></p>
<p>I can narrow down 2 a bit.  When there is only space to show a single row (or less than a single line), the scrollbar won't respond to clicks in the empty area.  When at least a full row is visible, then it starts working normally.<o:p></o:p></p>
<p>I wonder if it might be possible to warn if that line is missing somehow, or provide a different method to override that doesn't require calling super.<o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">On 12/07/2023 11:26, Ajit Ghaisas wrote:</span><o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="font-size:10.5pt">Hi John,</span><span style="font-size:11.0pt">
</span><o:p></o:p></p>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt">   This looks like a user code issue and not a JavaFX bug.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt">   Most of the vertical scrollbar issues that you have mentioned get fixed by adding a call to "super.updateItem(image, empty);" as a first call in the cell factory method "<span style="color:black;background:white">protected
 void updateItem(Image image, boolean empty)</span>”</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black;background:white">I am seeing an exception when I scroll fully down and then scroll up by clicking empty area on the vertical scrollbar. This looks like a separate issue though.</span><o:p></o:p></p>
</div>
</blockquote>
<p>I didn't see any exceptions, just that the scrollbar is unresponsive when clicking in the empty area when less than a full row is visible.<o:p></o:p></p>
<p>--John<o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</body>
</html>