diff options
Diffstat (limited to 'platform/platform-impl/src/com/intellij/ui/AbstractExpandableItemsHandler.java')
-rw-r--r-- | platform/platform-impl/src/com/intellij/ui/AbstractExpandableItemsHandler.java | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/platform/platform-impl/src/com/intellij/ui/AbstractExpandableItemsHandler.java b/platform/platform-impl/src/com/intellij/ui/AbstractExpandableItemsHandler.java index 7226ee84e0c6..4e65063e7939 100644 --- a/platform/platform-impl/src/com/intellij/ui/AbstractExpandableItemsHandler.java +++ b/platform/platform-impl/src/com/intellij/ui/AbstractExpandableItemsHandler.java @@ -54,6 +54,16 @@ public abstract class AbstractExpandableItemsHandler<KeyType, ComponentType exte myTipComponent = new TipComponent(); + myTipComponent.addMouseListener(new MouseAdapter() { + @Override + public void mouseExited(MouseEvent e) { + // don't hide the hint if mouse exited to myComponent + if (myComponent.getMousePosition() == null) { + hideHint(); + } + } + }); + myComponent.addMouseListener( new MouseListener() { @Override @@ -63,7 +73,10 @@ public abstract class AbstractExpandableItemsHandler<KeyType, ComponentType exte @Override public void mouseExited(MouseEvent e) { - hideHint(); + // don't hide the hint if mouse exited to it + if (myTipComponent.getMousePosition() == null) { + hideHint(); + } } @Override @@ -319,7 +332,7 @@ public abstract class AbstractExpandableItemsHandler<KeyType, ComponentType exte g.setClip(null); doFillBackground(height, width, g); g.translate(-(visibleRect.x + visibleRect.width - cellBounds.x), 0); - doPaintTooltipImage(renderer, cellBounds, height, g, key); + doPaintTooltipImage(renderer, cellBounds, g, key); if (isPaintBorder()) { g.translate(visibleRect.x + visibleRect.width - cellBounds.x, 0); @@ -354,8 +367,8 @@ public abstract class AbstractExpandableItemsHandler<KeyType, ComponentType exte g.fillRect(0, 0, width, height); } - protected void doPaintTooltipImage(Component rComponent, Rectangle cellBounds, int height, Graphics2D g, KeyType key) { - myRendererPane.paintComponent(g, rComponent, myComponent, 0, 0, cellBounds.width, height, true); + protected void doPaintTooltipImage(Component rComponent, Rectangle cellBounds, Graphics2D g, KeyType key) { + myRendererPane.paintComponent(g, rComponent, myComponent, 0, 0, cellBounds.width, cellBounds.height, true); } protected Rectangle getVisibleRect(KeyType key) { |