public boolean hideCurrent( @Nullable MouseEvent me, @Nullable AnAction action, @Nullable AnActionEvent event, final boolean animationEnabled) { myShowRequest = null; myQueuedComponent = null; myQueuedTooltip = null; if (myCurrentTooltip == null) return true; if (myCurrentTipUi != null) { boolean isInside = me != null && myCurrentTipUi.isInsideBalloon(me); boolean canAutoHide = myCurrentTooltip.canAutohideOn(new TooltipEvent(me, isInside, action, event)); boolean implicitMouseMove = me != null && (me.getID() == MouseEvent.MOUSE_MOVED || me.getID() == MouseEvent.MOUSE_EXITED || me.getID() == MouseEvent.MOUSE_ENTERED); if (!canAutoHide || myCurrentTooltip.isExplicitClose() && implicitMouseMove) { if (myHideRunnable != null) { myHideRunnable = null; } return false; } } myHideRunnable = new Runnable() { @Override public void run() { if (myHideRunnable != null) { hideCurrentNow(animationEnabled); myHideRunnable = null; } } }; if (me != null) { myAlarm.addRequest(myHideRunnable, Registry.intValue("ide.tooltip.autoDismissDeadZone")); } else { myHideRunnable.run(); myHideRunnable = null; } return true; }