X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=ui%2FListModel.java;h=3029f61a04c43411da2400f5cf6fb75374dc1a81;hb=e134fbb2dae380782dc96536cb228727f369a3f3;hp=cf16d5f0a111e660171102b3efad3bdefe1d6d48;hpb=8b2627ce767579eb616e262b3f45f810a88ec200;p=nikiroo-utils.git diff --git a/ui/ListModel.java b/ui/ListModel.java index cf16d5f..3029f61 100644 --- a/ui/ListModel.java +++ b/ui/ListModel.java @@ -34,6 +34,9 @@ import be.nikiroo.utils.compat.ListCellRenderer6; public class ListModel extends DefaultListModel6 { private static final long serialVersionUID = 1L; + /** How long to wait before displaying a tooltip, in milliseconds. */ + private static final int DELAY_TOOLTIP_MS = 1000; + /** * A filter interface, to check for a condition (note that a Predicate class * already exists in Java 1.8+, and is compatible with this one if you @@ -254,7 +257,7 @@ public class ListModel extends DefaultListModel6 { list.setModel(this); - final DelayWorker tooltipWatcher = new DelayWorker(500); + final DelayWorker tooltipWatcher = new DelayWorker(DELAY_TOOLTIP_MS); if (tooltipCreator != null) { tooltipWatcher.start(); } @@ -272,6 +275,12 @@ public class ListModel extends DefaultListModel6 { hoveredIndex = index; fireElementChanged(oldIndex); fireElementChanged(index); + + Window oldTooltip = tooltip; + tooltip = null; + if (oldTooltip != null) { + oldTooltip.setVisible(false); + } if (ListModel.this.tooltipCreator != null) { tooltipWatcher.delay("tooltip", @@ -284,12 +293,6 @@ public class ListModel extends DefaultListModel6 { @Override protected void done() { - Window oldTooltip = tooltip; - tooltip = null; - if (oldTooltip != null) { - oldTooltip.setVisible(false); - } - if (index < 0 || index != hoveredIndex) { return;