diff --git a/platform/platform-impl/src/com/intellij/ide/IdeTooltipManager.java b/platform/platform-impl/src/com/intellij/ide/IdeTooltipManager.java index e33781da2387..89c81604a276 100644 --- a/platform/platform-impl/src/com/intellij/ide/IdeTooltipManager.java +++ b/platform/platform-impl/src/com/intellij/ide/IdeTooltipManager.java @@ -157,7 +157,7 @@ public class IdeTooltipManager implements ApplicationComponent, AWTEventListener } else if (me.getID() == MouseEvent.MOUSE_PRESSED) { boolean clickOnTooltip = myCurrentTipUi != null && myCurrentTipUi == JBPopupFactory.getInstance().getParentBalloonFor(c); - if (c == myCurrentComponent || clickOnTooltip) { + if (c == myCurrentComponent || (clickOnTooltip && !myCurrentTipUi.isClickProcessor())) { hideCurrent(me, null, null, null, !clickOnTooltip); } } diff --git a/platform/platform-impl/src/com/intellij/ui/BalloonImpl.java b/platform/platform-impl/src/com/intellij/ui/BalloonImpl.java index fa464ca5daf6..77edd4f72afc 100644 --- a/platform/platform-impl/src/com/intellij/ui/BalloonImpl.java +++ b/platform/platform-impl/src/com/intellij/ui/BalloonImpl.java @@ -1952,4 +1952,8 @@ public class BalloonImpl implements Balloon, IdeTooltip.Ui { public boolean isBlockClicks() { return myBlockClicks; } + + public boolean isClickProcessor() { + return myClickHandler != null || !myCloseOnClick || isBlockClicks(); + } }