From da14e2c349507ff96e2f4a69916be36a96cc478a Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Fri, 11 Oct 2013 13:59:19 -0400 Subject: [PATCH] messageTray: Clean up code that determines if something is clearable https://bugzilla.gnome.org/show_bug.cgi?id=710115 --- js/ui/messageTray.js | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js index d75a5a94d..9e5ddadad 100644 --- a/js/ui/messageTray.js +++ b/js/ui/messageTray.js @@ -1211,6 +1211,10 @@ const Source = new Lang.Class({ return this.count > 1; }, + get isClearable() { + return !this.trayIcon && !this.isChat && !this.resident; + }, + countUpdated: function() { this.emit('count-updated'); }, @@ -1540,22 +1544,14 @@ const MessageTrayMenu = new Lang.Class({ this.addMenuItem(separator); this._clearItem = this.addAction(_("Clear Messages"), function() { - let toDestroy = []; - let sources = tray.getSources(); - for (let i = 0; i < sources.length; i++) { - // We exclude trayIcons, chat and resident sources - if (sources[i].trayIcon || - sources[i].isChat || - sources[i].resident) - continue; - toDestroy.push(sources[i]); - } + let toDestroy = tray.getSources().filter(function(source) { + return source.isClearable; + }) - for (let i = 0; i < toDestroy.length; i++) { - toDestroy[i].destroy(); - } + toDestroy.forEach(function(source) { + source.destroy(); + }); - toDestroy = null; tray.close(); }); @@ -1989,7 +1985,7 @@ const MessageTray = new Lang.Class({ this._summary.insert_child_at_index(summaryItem.actor, this._chatSummaryItemsCount); } - if (!source.trayIcon && !source.isChat && !source.resident) + if (source.isClearable) this.clearableCount++; this._sources.set(source, obj); @@ -2033,7 +2029,7 @@ const MessageTray = new Lang.Class({ if (source.isChat) this._chatSummaryItemsCount--; - if (!source.trayIcon && !source.isChat && !source.resident) + if (source.isClearable) this.clearableCount--; source.disconnect(obj.notifyId);