diff --git a/platform/lang-impl/src/com/intellij/notification/EventLog.java b/platform/lang-impl/src/com/intellij/notification/EventLog.java index 4cb9fc057686..09f209b09b73 100644 --- a/platform/lang-impl/src/com/intellij/notification/EventLog.java +++ b/platform/lang-impl/src/com/intellij/notification/EventLog.java @@ -120,6 +120,10 @@ public class EventLog implements Notifications { } view.print("\n", ConsoleViewContentType.NORMAL_OUTPUT); + notifyStatusBar(project, mainText); + } + + private static void notifyStatusBar(Project project, @Nullable String mainText) { final IdeFrame frame = WindowManager.getInstance().getIdeFrame(project); if (frame != null) { final StatusBar statusBar = frame.getStatusBar(); @@ -172,6 +176,11 @@ public class EventLog implements Notifications { } myGlobalNotifications.clear(); } + + @Override + public void projectClosed() { + notifyStatusBar(myProject, null); + } } public static ProjectTracker getProjectComponent(Project project) { diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/ex/StatusBarEx.java b/platform/platform-impl/src/com/intellij/openapi/wm/ex/StatusBarEx.java index e36f58a11c6a..79851cda3bbd 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/ex/StatusBarEx.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/ex/StatusBarEx.java @@ -54,5 +54,5 @@ public interface StatusBarEx extends StatusBar, Disposable { @Nullable String getInfoRequestor(); - void setLogMessage(String text); + void setLogMessage(@Nullable String text); } diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/StatusPanel.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/StatusPanel.java index 5f30f587d386..bc1c5021aee1 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/StatusPanel.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/StatusPanel.java @@ -16,6 +16,7 @@ package com.intellij.openapi.wm.impl.status; import com.intellij.notification.impl.NotificationsManagerImpl; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; import com.intellij.openapi.project.ProjectManager; @@ -88,12 +89,20 @@ class StatusPanel extends JPanel { } public void setLogMessage(String text) { + ApplicationManager.getApplication().assertIsDispatchThread(); + myLogMessage = text; myLogTime = new Date(); myDirty = false; + + if (text == null) { + updateText(false, ""); + } } public boolean updateText(boolean logAllowed, @Nullable String nonLogText) { + ApplicationManager.getApplication().assertIsDispatchThread(); + myLogMode = logAllowed && StringUtil.isEmpty(nonLogText) && myLogMessage != null; myShowLog.setVisible(myLogMode);