diff --git a/platform/lang-impl/src/com/intellij/openapi/editor/EditorMouseHoverPopupManager.java b/platform/lang-impl/src/com/intellij/openapi/editor/EditorMouseHoverPopupManager.java index dad3d12b16fb..2e9a4077a8aa 100644 --- a/platform/lang-impl/src/com/intellij/openapi/editor/EditorMouseHoverPopupManager.java +++ b/platform/lang-impl/src/com/intellij/openapi/editor/EditorMouseHoverPopupManager.java @@ -68,6 +68,7 @@ import org.jetbrains.concurrency.CancellablePromise; import javax.swing.*; import java.awt.*; +import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.event.WindowEvent; import java.lang.ref.WeakReference; @@ -123,8 +124,12 @@ public final class EditorMouseHoverPopupManager implements Disposable { LaterInvocator.addModalityStateListener(entering -> { cancelProcessingAndCloseHint(); }, this); - IdeEventQueue.getInstance().addActivityListener(() -> { - cancelCurrentProcessing(); + IdeEventQueue.getInstance().addDispatcher(event -> { + int eventID = event.getID(); + if (eventID == KeyEvent.KEY_PRESSED || eventID == KeyEvent.KEY_TYPED) { + cancelCurrentProcessing(); + } + return false; }, this); ApplicationManager.getApplication().getMessageBus().connect(this).subscribe(AnActionListener.TOPIC, new MyActionListener()); }