From e818ddf1528f25f6289f391b4947a6ec3b40a43b Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Thu, 1 Aug 2013 23:41:16 -0400 Subject: [PATCH] messageTray: Clean up _updateState for the summary box pointer This code still isn't great, but it's an improvement over what we had before. --- js/ui/messageTray.js | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js index 8730c9749..f17e709e7 100644 --- a/js/ui/messageTray.js +++ b/js/ui/messageTray.js @@ -2273,29 +2273,29 @@ const MessageTray = new Lang.Class({ // Summary notification let haveClickedSummaryItem = this._clickedSummaryItem != null; - // We only have sources with empty notification stacks for legacy tray icons. Currently, we never attempt - // to show notifications for legacy tray icons, but this would be necessary if we did. let requestedNotificationStackIsEmpty = (haveClickedSummaryItem && this._clickedSummaryItemMouseButton == 1 && this._clickedSummaryItem.source.notifications.length == 0); - let wrongSummaryNotificationStack = (haveClickedSummaryItem && - this._clickedSummaryItemMouseButton == 1 && - this._summaryBoxPointer.bin.child != this._clickedSummaryItem.notificationStackWidget); - let wrongSummaryRightClickMenu = (haveClickedSummaryItem && - this._clickedSummaryItemMouseButton == 3 && - this._clickedSummaryItem.rightClickMenu != null && - this._summaryBoxPointer.bin.child != this._clickedSummaryItem.rightClickMenu); - let wrongSummaryBoxPointer = (haveClickedSummaryItem && - (wrongSummaryNotificationStack || wrongSummaryRightClickMenu)); if (this._summaryBoxPointerState == State.HIDDEN) { if (haveClickedSummaryItem && !requestedNotificationStackIsEmpty) this._showSummaryBoxPointer(); } else if (this._summaryBoxPointerState == State.SHOWN) { - if (!haveClickedSummaryItem || wrongSummaryBoxPointer || !hasNotifications) { - this._hideSummaryBoxPointer(); - if (wrongSummaryBoxPointer) + if (haveClickedSummaryItem && hasNotifications) { + let wrongSummaryNotificationStack = (this._clickedSummaryItemMouseButton == 1 && + this._summaryBoxPointer.bin.child != this._clickedSummaryItem.notificationStackWidget && + requestedNotificationStackIsEmpty); + let wrongSummaryRightClickMenu = (this._clickedSummaryItemMouseButton == 3 && + this._clickedSummaryItem.rightClickMenu != null && + this._summaryBoxPointer.bin.child != this._clickedSummaryItem.rightClickMenu); + let wrongSummaryBoxPointer = (wrongSummaryNotificationStack || wrongSummaryRightClickMenu); + + if (wrongSummaryBoxPointer) { + this._hideSummaryBoxPointer(); this._showSummaryBoxPointer(); + } + } else { + this._hideSummaryBoxPointer(); } }