[gnome-shell] MessageTray: only create icon buttons if specifically requested
- From: Jonathan Matthew <jmatthew src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] MessageTray: only create icon buttons if specifically requested
- Date: Tue, 2 Nov 2010 09:20:04 +0000 (UTC)
commit 9585c823d51af30a536c7b304cbc12b24259635b
Author: Jonathan Matthew <jonathan d14n org>
Date: Sat Oct 30 16:29:21 2010 +1000
MessageTray: only create icon buttons if specifically requested
Action names sometimes unintentionally overlap with icon names, so
we should only create icon buttons if the message tray source requests
it. For the notification daemon, this is done by setting the
'action-icons' hint on the notification.
The previous notification server capability used to advertise this
feature, "x-gnome-icon-buttons", has been removed in favour of the
new capability described in the notification spec, "action-icons".
https://bugzilla.gnome.org/show_bug.cgi?id=624584
js/ui/messageTray.js | 7 ++++++-
js/ui/notificationDaemon.js | 3 ++-
2 files changed, 8 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
index 7ab1b76..d110519 100644
--- a/js/ui/messageTray.js
+++ b/js/ui/messageTray.js
@@ -102,6 +102,7 @@ Notification.prototype = {
this.source = source;
this.urgent = false;
this.expanded = false;
+ this._useActionIcons = false;
this._customContent = false;
this._bannerBodyText = null;
this._titleFitsInBannerMode = true;
@@ -346,7 +347,7 @@ Notification.prototype = {
let button = new St.Button();
- if (Gtk.IconTheme.get_default().has_icon(id)) {
+ if (this._useActionIcons && Gtk.IconTheme.get_default().has_icon(id)) {
button.add_style_class_name('notification-icon-button');
button.child = St.TextureCache.get_default().load_icon_name(id, St.IconType.SYMBOLIC, BUTTON_ICON_SIZE);
} else {
@@ -363,6 +364,10 @@ Notification.prototype = {
this.urgent = urgent;
},
+ setUseActionIcons: function(useIcons) {
+ this._useActionIcons = useIcons;
+ },
+
_styleChanged: function() {
this._spacing = this.actor.get_theme_node().get_length('spacing-columns');
},
diff --git a/js/ui/notificationDaemon.js b/js/ui/notificationDaemon.js
index 88fbc00..5bebb17 100644
--- a/js/ui/notificationDaemon.js
+++ b/js/ui/notificationDaemon.js
@@ -294,6 +294,7 @@ NotificationDaemon.prototype = {
}
if (actions.length) {
+ notification.setUseActionIcons(hints['action-icons'] == true);
for (let i = 0; i < actions.length - 1; i += 2)
notification.addButton(actions[i], actions[i + 1]);
}
@@ -317,6 +318,7 @@ NotificationDaemon.prototype = {
GetCapabilities: function() {
return [
'actions',
+ 'action-icons',
'body',
// 'body-hyperlinks',
// 'body-images',
@@ -325,7 +327,6 @@ NotificationDaemon.prototype = {
'icon-static',
'persistence',
// 'sound',
- 'x-gnome-icon-buttons'
];
},
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]