From 4f97ffeef70665e54913f6ce80e90976ba72e43f Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 26 Feb 2014 20:48:04 +0100 Subject: [PATCH] don't reuse progress indicator in ctrl+mouse handler (EA-53958) --- .../navigation/CtrlMouseHandler.java | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/navigation/CtrlMouseHandler.java b/platform/lang-impl/src/com/intellij/codeInsight/navigation/CtrlMouseHandler.java index fd433b9e5938..3e0e26424bb5 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/navigation/CtrlMouseHandler.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/navigation/CtrlMouseHandler.java @@ -138,17 +138,20 @@ public class CtrlMouseHandler extends AbstractProjectComponent { BrowseMode browseMode = getBrowseMode(modifiers); if (browseMode != BrowseMode.None) { - if (myTooltipProvider != null) { - if (browseMode != myTooltipProvider.getBrowseMode()) { + TooltipProvider tooltipProvider = myTooltipProvider; + if (tooltipProvider != null) { + if (browseMode != tooltipProvider.getBrowseMode()) { disposeHighlighter(); } myStoredModifiers = modifiers; + cancelPreviousTooltip(); + myTooltipProvider = new TooltipProvider(tooltipProvider.myEditor, tooltipProvider.myPosition); myTooltipProvider.execute(browseMode); } } else { disposeHighlighter(); - myTooltipProvider = null; + cancelPreviousTooltip(); } } }; @@ -157,7 +160,7 @@ public class CtrlMouseHandler extends AbstractProjectComponent { @Override public void selectionChanged(@NotNull FileEditorManagerEvent e) { disposeHighlighter(); - myTooltipProvider = null; + cancelPreviousTooltip(); } }; @@ -165,7 +168,7 @@ public class CtrlMouseHandler extends AbstractProjectComponent { @Override public void visibleAreaChanged(VisibleAreaEvent e) { disposeHighlighter(); - myTooltipProvider = null; + cancelPreviousTooltip(); } }; @@ -173,7 +176,7 @@ public class CtrlMouseHandler extends AbstractProjectComponent { @Override public void mouseReleased(EditorMouseEvent e) { disposeHighlighter(); - myTooltipProvider = null; + cancelPreviousTooltip(); } }; @@ -211,13 +214,10 @@ public class CtrlMouseHandler extends AbstractProjectComponent { myStoredModifiers = mouseEvent.getModifiers(); BrowseMode browseMode = getBrowseMode(myStoredModifiers); - if (myTooltipProvider != null) { - myTooltipProvider.dispose(); - } + cancelPreviousTooltip(); if (browseMode == BrowseMode.None || offset >= selStart && offset < selEnd) { disposeHighlighter(); - myTooltipProvider = null; return; } @@ -226,6 +226,13 @@ public class CtrlMouseHandler extends AbstractProjectComponent { } }; + private void cancelPreviousTooltip() { + if (myTooltipProvider != null) { + myTooltipProvider.dispose(); + myTooltipProvider = null; + } + } + @NotNull private final Alarm myDocAlarm; public CtrlMouseHandler(final Project project,