[gnome-shell] messageTray: Defer creation of mainIcon
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] messageTray: Defer creation of mainIcon
- Date: Fri, 17 Aug 2012 01:03:48 +0000 (UTC)
commit 8f129e1c9de9968996fdb466354d0d38cfc17fcc
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Thu Aug 16 15:50:35 2012 -0400
messageTray: Defer creation of mainIcon
We need to make sure the Source is fully constructed before creating
mainIcon, as SourceActor will query the count of the source.
This fixes Telepathy Chats.
https://bugzilla.gnome.org/show_bug.cgi?id=682045
js/ui/messageTray.js | 21 ++++++++++++++++-----
1 files changed, 16 insertions(+), 5 deletions(-)
---
diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
index eabf6a7..2a736b6 100644
--- a/js/ui/messageTray.js
+++ b/js/ui/messageTray.js
@@ -1132,9 +1132,6 @@ const Source = new Lang.Class({
this.isMuted = false;
this.notifications = [];
-
- this.mainIcon = new SourceActor(this, this.ICON_SIZE);
- this._setSummaryIcon(this.createIcon(this.ICON_SIZE));
},
get count() {
@@ -1178,10 +1175,23 @@ const Source = new Lang.Class({
icon_size: size });
},
+ _ensureMainIcon: function(icon) {
+ if (this._mainIcon)
+ return false;
+
+ if (!icon)
+ icon = this.createIcon(this.ICON_SIZE);
+
+ this._mainIcon = new SourceActor(this, this.ICON_SIZE);
+ this._mainIcon.setIcon(icon);
+ return true;
+ },
+
// Unlike createIcon, this always returns the same actor;
// there is only one summary icon actor for a Source.
getSummaryIcon: function() {
- return this.mainIcon.actor;
+ this._ensureMainIcon();
+ return this._mainIcon.actor;
},
pushNotification: function(notification) {
@@ -1228,7 +1238,8 @@ const Source = new Lang.Class({
//// Protected methods ////
_setSummaryIcon: function(icon) {
- this.mainIcon.setIcon(icon);
+ if (!this._ensureMainIcon(icon))
+ this._mainIcon.setIcon(icon);
},
open: function(notification) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]