From 4125f6b77c6fdee8ca111bef373dd4ffac5b0696 Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Tue, 11 Sep 2012 13:12:42 +0400 Subject: [PATCH] foreground for darcula + IDEA-91318 Closing a project while the Hector the Inspector is displayed, orphans the popup --- .../codeInsight/daemon/impl/HectorComponent.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/HectorComponent.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/HectorComponent.java index 52f410268636..ab1e7a697cd6 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/HectorComponent.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/HectorComponent.java @@ -20,6 +20,7 @@ import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer; import com.intellij.codeInsight.daemon.impl.analysis.FileHighlighingSetting; import com.intellij.codeInsight.daemon.impl.analysis.HighlightLevelUtil; import com.intellij.lang.Language; +import com.intellij.openapi.Disposable; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.EditorBundle; import com.intellij.openapi.editor.HectorComponentPanel; @@ -33,6 +34,7 @@ import com.intellij.openapi.roots.ProjectRootManager; import com.intellij.openapi.ui.popup.JBPopup; import com.intellij.openapi.ui.popup.JBPopupFactory; import com.intellij.openapi.util.Computable; +import com.intellij.openapi.util.Disposer; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.profile.codeInspection.InspectionProjectProfileManager; import com.intellij.profile.codeInspection.ui.ErrorsConfigurable; @@ -40,7 +42,6 @@ import com.intellij.psi.FileViewProvider; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.util.PsiUtilBase; -import com.intellij.ui.Gray; import com.intellij.ui.HyperlinkLabel; import com.intellij.ui.IdeBorderFactory; import com.intellij.ui.awt.RelativePoint; @@ -113,7 +114,7 @@ public class HectorComponent extends JPanel { int value = slider.getValue(); for (Enumeration enumeration = sliderLabels.keys(); enumeration.hasMoreElements();) { Integer key = enumeration.nextElement(); - sliderLabels.get(key).setForeground(key.intValue() <= value ? Color.black : Gray._100); + sliderLabels.get(key).setForeground(key.intValue() <= value ? UIUtil.getLabelForeground() : UIUtil.getLabelDisabledForeground()); } } }); @@ -230,6 +231,16 @@ public class HectorComponent extends JPanel { } }) .createPopup(); + Disposer.register(myFile.getProject(), new Disposable() { + @Override + public void dispose() { + final JBPopup oldHector = getOldHector(); + if (oldHector != null && !oldHector.isDisposed()) { + Disposer.dispose(oldHector); + } + Disposer.dispose(hector); + } + }); final JBPopup oldHector = getOldHector(); if (oldHector != null){ oldHector.cancel();