St: add :disabled pseudo class when a button is not reactive
The :reactive property is used on StButton to like the :sensitive property on GtkWidgets, that is, to indicate that the user is not (yet) expected to click the button, and therefore should affect styling too. This allows to remove some code at the JS layer. https://bugzilla.gnome.org/show_bug.cgi?id=619955
This commit is contained in:
parent
2c073fb005
commit
a29507e452
@ -166,10 +166,6 @@ const NetworkSecretDialog = new Lang.Class({
|
||||
|
||||
this._okButton.button.reactive = valid;
|
||||
this._okButton.button.can_focus = valid;
|
||||
if (valid)
|
||||
this._okButton.button.remove_style_pseudo_class('disabled');
|
||||
else
|
||||
this._okButton.button.add_style_pseudo_class('disabled');
|
||||
},
|
||||
|
||||
_onOk: function() {
|
||||
|
@ -446,6 +446,15 @@ st_button_class_init (StButtonClass *klass)
|
||||
G_TYPE_INT);
|
||||
}
|
||||
|
||||
static void
|
||||
notify_reactive_cb (StWidget *button)
|
||||
{
|
||||
if (clutter_actor_get_reactive (CLUTTER_ACTOR (button)))
|
||||
st_widget_remove_style_pseudo_class (button, "disabled");
|
||||
else
|
||||
st_widget_add_style_pseudo_class (button, "disabled");
|
||||
}
|
||||
|
||||
static void
|
||||
st_button_init (StButton *button)
|
||||
{
|
||||
@ -455,6 +464,9 @@ st_button_init (StButton *button)
|
||||
|
||||
clutter_actor_set_reactive (CLUTTER_ACTOR (button), TRUE);
|
||||
st_widget_set_track_hover (ST_WIDGET (button), TRUE);
|
||||
|
||||
g_signal_connect(button, "notify::reactive",
|
||||
G_CALLBACK (notify_reactive_cb), NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user