From a3277f0efb9082d0fd0f8dfe728f864563c76ae6 Mon Sep 17 00:00:00 2001 From: Alexey Pegov Date: Fri, 18 Dec 2009 17:27:37 +0300 Subject: [PATCH] IDEADEV-41971 Clicking background tasks icon (on status bar) doesn't hide window --- .../impl/ui/NotificationComponent.java | 16 ++++++++-------- .../wm/impl/status/InfoAndProgressPanel.java | 2 ++ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/notification/impl/ui/NotificationComponent.java b/platform/platform-impl/src/com/intellij/notification/impl/ui/NotificationComponent.java index 7ebddd53d6ca..220e049e3061 100644 --- a/platform/platform-impl/src/com/intellij/notification/impl/ui/NotificationComponent.java +++ b/platform/platform-impl/src/com/intellij/notification/impl/ui/NotificationComponent.java @@ -57,7 +57,7 @@ public class NotificationComponent extends JLabel implements NotificationModelLi @Override public void mousePressed(final MouseEvent e) { if (UIUtil.isActionClick(e)) { - showList(); + toggleList(); } } }); @@ -97,16 +97,16 @@ public class NotificationComponent extends JLabel implements NotificationModelLi getManager().addListener(this); } - private void showList() { + private void toggleList() { + JBPopup popup = null; if (myPopupRef != null) { - final JBPopup popup = myPopupRef.get(); - if (popup != null && !popup.isVisible()) { - myPopupRef = null; - } - else if (popup == null) myPopupRef = null; + popup = myPopupRef.get(); + myPopupRef = null; } - if (myPopupRef == null) { + if (popup != null && popup.isVisible()) { + popup.cancel(); + } else { myPopupRef = new WeakReference(NotificationsListPanel.show(getProject(), this)); } } diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/InfoAndProgressPanel.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/InfoAndProgressPanel.java index c0f79ded8f58..188f00b54b80 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/InfoAndProgressPanel.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/InfoAndProgressPanel.java @@ -86,6 +86,8 @@ public class InfoAndProgressPanel extends JPanel implements StatusBarPatch { public void mousePressed(MouseEvent e) { if (!myPopup.isShowing()) { openProcessPopup(); + } else { + hideProcessPopup(); } } });