From 39ca35fc1e5e2931fbfcb0922f651a90a470cacc Mon Sep 17 00:00:00 2001 From: Alexander Lobas Date: Wed, 8 Jun 2016 16:02:34 +0300 Subject: [PATCH] IDEA-153807 Welcome screen notifications --- .../impl/welcomeScreen/FlatWelcomeFrame.java | 20 +++++++++++-------- .../WelcomeBalloonLayoutImpl.java | 7 ++++++- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/FlatWelcomeFrame.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/FlatWelcomeFrame.java index 178ef3fdd34b..be06559be95c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/FlatWelcomeFrame.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/FlatWelcomeFrame.java @@ -317,22 +317,26 @@ public class FlatWelcomeFrame extends JFrame implements IdeFrame, Disposable, Ac }); panel.setVisible(false); myEventListener = types -> { - NotificationType type1 = null; + NotificationType type = null; for (NotificationType t : types) { if (NotificationType.ERROR == t) { - type1 = NotificationType.ERROR; + type = NotificationType.ERROR; break; } if (NotificationType.WARNING == t) { - type1 = NotificationType.WARNING; + type = NotificationType.WARNING; } - else if (type1 == null && NotificationType.INFORMATION == t) { - type1 = NotificationType.INFORMATION; + else if (type == null && NotificationType.INFORMATION == t) { + type = NotificationType.INFORMATION; } } - - actionLinkRef.get().setIcon(IdeNotificationArea.createIconWithNotificationCount(actionLinkRef.get(), type1, types.size())); - panel.setVisible(true); + if (types.isEmpty()) { + panel.setVisible(false); + } + else { + actionLinkRef.get().setIcon(IdeNotificationArea.createIconWithNotificationCount(actionLinkRef.get(), type, types.size())); + panel.setVisible(true); + } }; myEventLocation = () -> { Point location = SwingUtilities.convertPoint(panel, 0, 0, getRootPane().getLayeredPane()); diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/WelcomeBalloonLayoutImpl.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/WelcomeBalloonLayoutImpl.java index 803dc93a39ce..2efece0a075b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/WelcomeBalloonLayoutImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/WelcomeBalloonLayoutImpl.java @@ -180,7 +180,12 @@ public class WelcomeBalloonLayoutImpl extends BalloonLayoutImpl { myListener.run(types); if (myVisible) { - layoutPopup(); + if (count == 0) { + myPopupBalloon.getComponent().setVisible(false); + } + else { + layoutPopup(); + } } }