st-widget: Move reactivity tracking to StWidget, use "insensitive"

This lets use remove another few pieces of code that do the tracking
manually.

https://bugzilla.gnome.org/show_bug.cgi?id=680426
This commit is contained in:
Jasper St. Pierre 2012-07-22 20:46:48 -03:00
parent 26031eb761
commit 414fe75d02
5 changed files with 14 additions and 31 deletions

View File

@ -202,7 +202,7 @@ StScrollBar StButton#vhandle:hover
background-color: #4c4c4c; background-color: #4c4c4c;
} }
.popup-menu-item:insensitive { StButton.popup-menu-item:insensitive {
color: #9f9f9f; color: #9f9f9f;
} }
@ -1630,7 +1630,7 @@ StScrollBar StButton#vhandle:hover
padding: 4px 32px 5px; padding: 4px 32px 5px;
} }
.modal-dialog-button:disabled { .modal-dialog-button:insensitive {
color: rgb(60, 60, 60); color: rgb(60, 60, 60);
} }

View File

@ -799,10 +799,6 @@ const Notification = new Lang.Class({
return; return;
button.reactive = sensitive; button.reactive = sensitive;
if (sensitive)
button.remove_style_pseudo_class('insensitive');
else
button.add_style_pseudo_class('insensitive');
}, },
setUrgency: function(urgency) { setUrgency: function(urgency) {

View File

@ -135,10 +135,6 @@ const PopupBaseMenuItem = new Lang.Class({
this.sensitive = sensitive; this.sensitive = sensitive;
this.actor.reactive = sensitive; this.actor.reactive = sensitive;
if (sensitive)
this.actor.remove_style_pseudo_class('insensitive');
else
this.actor.add_style_pseudo_class('insensitive');
this.emit('sensitive-changed', sensitive); this.emit('sensitive-changed', sensitive);
}, },
@ -1900,10 +1896,6 @@ const RemoteMenu = new Lang.Class({
} }
item.actor.reactive = action.enabled; item.actor.reactive = action.enabled;
if (action.enabled)
item.actor.remove_style_pseudo_class('insensitive');
else
item.actor.add_style_pseudo_class('insensitive');
destroyId = item.connect('destroy', Lang.bind(this, function() { destroyId = item.connect('destroy', Lang.bind(this, function() {
item.disconnect(destroyId); item.disconnect(destroyId);
@ -2036,11 +2028,6 @@ const RemoteMenu = new Lang.Class({
for (let i = 0; i < action.items.length; i++) { for (let i = 0; i < action.items.length; i++) {
let item = action.items[i]; let item = action.items[i];
item.actor.reactive = action.enabled; item.actor.reactive = action.enabled;
if (action.enabled)
item.actor.remove_style_pseudo_class('insensitive');
else
item.actor.add_style_pseudo_class('insensitive');
} }
} }
} }

View File

@ -446,15 +446,6 @@ st_button_class_init (StButtonClass *klass)
G_TYPE_INT); 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 static void
st_button_init (StButton *button) st_button_init (StButton *button)
{ {
@ -464,9 +455,6 @@ st_button_init (StButton *button)
clutter_actor_set_reactive (CLUTTER_ACTOR (button), TRUE); clutter_actor_set_reactive (CLUTTER_ACTOR (button), TRUE);
st_widget_set_track_hover (ST_WIDGET (button), TRUE); st_widget_set_track_hover (ST_WIDGET (button), TRUE);
g_signal_connect(button, "notify::reactive",
G_CALLBACK (notify_reactive_cb), NULL);
} }
/** /**

View File

@ -1404,6 +1404,17 @@ st_widget_name_notify (StWidget *widget,
st_widget_style_changed (widget); st_widget_style_changed (widget);
} }
static void
st_widget_reactive_notify (StWidget *widget,
GParamSpec *pspec,
gpointer data)
{
if (clutter_actor_get_reactive (CLUTTER_ACTOR (widget)))
st_widget_remove_style_pseudo_class (widget, "insensitive");
else
st_widget_add_style_pseudo_class (widget, "insensitive");
}
static void static void
st_widget_first_child_notify (StWidget *widget, st_widget_first_child_notify (StWidget *widget,
GParamSpec *pspec, GParamSpec *pspec,
@ -1466,6 +1477,7 @@ st_widget_init (StWidget *actor)
/* connect style changed */ /* connect style changed */
g_signal_connect (actor, "notify::name", G_CALLBACK (st_widget_name_notify), NULL); g_signal_connect (actor, "notify::name", G_CALLBACK (st_widget_name_notify), NULL);
g_signal_connect (actor, "notify::reactive", G_CALLBACK (st_widget_reactive_notify), NULL);
g_signal_connect (actor, "notify::first-child", G_CALLBACK (st_widget_first_child_notify), NULL); g_signal_connect (actor, "notify::first-child", G_CALLBACK (st_widget_first_child_notify), NULL);
g_signal_connect (actor, "notify::last-child", G_CALLBACK (st_widget_last_child_notify), NULL); g_signal_connect (actor, "notify::last-child", G_CALLBACK (st_widget_last_child_notify), NULL);