messageTray: Replace setButtonSensitive by simply returning the button

We want to remove 'id's from buttons, and simply returning the button actor
is more powerful anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=710137
This commit is contained in:
Jasper St. Pierre 2013-10-13 22:56:26 -04:00
parent 06cb8c52d7
commit 88d0731d80
2 changed files with 6 additions and 28 deletions

View File

@ -859,7 +859,6 @@ const Notification = new Lang.Class({
} }
let button = new St.Button({ can_focus: true }); let button = new St.Button({ can_focus: true });
button._actionId = id;
let iconName = strHasSuffix(id, '-symbolic') ? id : id + '-symbolic'; let iconName = strHasSuffix(id, '-symbolic') ? id : id + '-symbolic';
if (this._useActionIcons && Gtk.IconTheme.get_default().has_icon(iconName)) { if (this._useActionIcons && Gtk.IconTheme.get_default().has_icon(iconName)) {
@ -874,27 +873,7 @@ const Notification = new Lang.Class({
button.connect('clicked', Lang.bind(this, this._onActionInvoked, id)); button.connect('clicked', Lang.bind(this, this._onActionInvoked, id));
this.updated(); this.updated();
}, return button;
// setButtonSensitive:
// @id: the action ID
// @sensitive: whether the button should be sensitive
//
// If the notification contains a button with action ID @id,
// its sensitivity will be set to @sensitive. Insensitive
// buttons cannot be clicked.
setButtonSensitive: function(id, sensitive) {
if (!this._buttonBox)
return;
let button = this._buttonBox.get_children().filter(function(b) {
return b._actionId == id;
})[0];
if (!button || button.reactive == sensitive)
return;
button.reactive = sensitive;
}, },
setUrgency: function(urgency) { setUrgency: function(urgency) {

View File

@ -217,13 +217,12 @@ const PinNotification = new Lang.Class({
})); }));
this.addActor(this._entry); this.addActor(this._entry);
this.addButton('ok', _("OK")); let okButton = this.addButton('ok', _("OK"));
this.addButton('cancel', _("Cancel")); this.addButton('cancel', _("Cancel"));
this.setButtonSensitive('ok', this._canActivateOkButton()); okButton.reactive = this._canActivateOkButton();
this._entry.clutter_text.connect('text-changed', Lang.bind(this, this._entry.clutter_text.connect('text-changed', Lang.bind(this, function() {
function() { okButton.reactive = this._canActivateOkButton();
this.setButtonSensitive('ok', this._canActivateOkButton());
})); }));
this.connect('action-invoked', Lang.bind(this, function(self, action) { this.connect('action-invoked', Lang.bind(this, function(self, action) {