From ff7e11f0841115cfccb5ca16c813125839d53884 Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Mon, 20 Aug 2012 15:14:38 +0400 Subject: [PATCH] hide floating nav bar on dialog show --- .../intellij/ide/navigationToolbar/NavBarListener.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarListener.java b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarListener.java index 07a1da0a968d..d2afd8a0f551 100644 --- a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarListener.java +++ b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarListener.java @@ -27,6 +27,7 @@ import com.intellij.openapi.fileEditor.FileEditorManagerListener; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.ModuleRootEvent; import com.intellij.openapi.roots.ModuleRootListener; +import com.intellij.openapi.ui.DialogWrapper; import com.intellij.openapi.ui.popup.JBPopupFactory; import com.intellij.openapi.util.ActionCallback; import com.intellij.openapi.vcs.FileStatusListener; @@ -154,10 +155,16 @@ public class NavBarListener extends WolfTheProblemSolver.ProblemListener } private void processFocusLost(FocusEvent e) { + final Component opposite = e.getOppositeComponent(); + + if (myPanel.isInFloatingMode() && opposite != null && DialogWrapper.findInstance(opposite) != null) { + myPanel.hideHint(); + return; + } + final boolean nodePopupInactive = !myPanel.isNodePopupActive(); boolean childPopupInactive = !JBPopupFactory.getInstance().isChildPopupFocused(myPanel); if (nodePopupInactive && childPopupInactive) { - final Component opposite = e.getOppositeComponent(); if (opposite != null && opposite != myPanel && !myPanel.isAncestorOf(opposite) && !e.isTemporary()) { myPanel.setContextComponent(null); myPanel.hideHint();