spinbutton: Use the widget state flags as a base for drawing

This commit is contained in:
Rui Matos 2011-12-21 16:17:18 +00:00
parent 9118ccb02d
commit e9549a7514

View File

@ -816,21 +816,23 @@ gtk_spin_button_panel_get_state (GtkSpinButton *spin_button,
GtkStateFlags state; GtkStateFlags state;
GtkSpinButtonPrivate *priv = spin_button->priv; GtkSpinButtonPrivate *priv = spin_button->priv;
if (gtk_spin_button_panel_at_limit (spin_button, panel) || state = gtk_widget_get_state_flags (GTK_WIDGET (spin_button));
state &= ~(GTK_STATE_FLAG_ACTIVE | GTK_STATE_FLAG_PRELIGHT);
if ((state & GTK_STATE_FLAG_INSENSITIVE) ||
gtk_spin_button_panel_at_limit (spin_button, panel) ||
!gtk_editable_get_editable (GTK_EDITABLE (spin_button))) !gtk_editable_get_editable (GTK_EDITABLE (spin_button)))
state = GTK_STATE_FLAG_INSENSITIVE; {
state |= GTK_STATE_FLAG_INSENSITIVE;
}
else else
{ {
if (priv->click_child == panel) if (priv->click_child == panel)
state = GTK_STATE_ACTIVE; state |= GTK_STATE_ACTIVE;
else else if (priv->in_child == panel &&
{ priv->click_child == NULL)
if (priv->in_child == panel && state |= GTK_STATE_FLAG_PRELIGHT;
priv->click_child == NULL)
state = GTK_STATE_FLAG_PRELIGHT;
else
state = gtk_widget_get_state_flags (GTK_WIDGET (spin_button));
}
} }
return state; return state;