diff --git a/js/ui/networkAgent.js b/js/ui/networkAgent.js index c9473a766..1c29b98f3 100644 --- a/js/ui/networkAgent.js +++ b/js/ui/networkAgent.js @@ -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() { diff --git a/src/st/st-button.c b/src/st/st-button.c index a4edbe75a..e3c46f9fb 100644 --- a/src/st/st-button.c +++ b/src/st/st-button.c @@ -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); } /**