# HG changeset patch # User David Barts # Date 1579640855 28800 # Node ID 88703ca72fc363c4122ba6db22d58df40aa5116e # Parent 732f92dc3bc699c2d08d98bb47ab10087b0b45c8 Make an efficiency improvement: cache the scrollPane. diff -r 732f92dc3bc6 -r 88703ca72fc3 src/name/blackcap/clipman/PasteboardQueue.kt --- a/src/name/blackcap/clipman/PasteboardQueue.kt Mon Jan 20 23:02:51 2020 -0800 +++ b/src/name/blackcap/clipman/PasteboardQueue.kt Tue Jan 21 13:07:35 2020 -0800 @@ -21,6 +21,17 @@ class PasteboardQueue(val parent: Container, maxSize: Int) { private val queue = LinkedList() private var _maxSize = maxSize + private var scrollPane: JScrollPane? = null + init { + var sp: Container? = parent + while (sp != null) { + if (sp is JScrollPane) { + scrollPane = sp + break + } + sp = sp.parent + } + } /** * The maximum allowed size of this queue. Attempts to make the queue @@ -42,12 +53,7 @@ @Synchronized fun add(item: QueueItem) { inSwingThread { parent.add(item.component) - /* XXX - assumes there is a JScrollPane above us in the tree */ - var sp = parent.parent - while (sp != null && !(sp is JScrollPane)) { - sp = sp.parent - } - (sp as JScrollPane).run { + scrollPane?.run { validate() verticalScrollBar.run { value = maximum + 1 } }