diff --git a/gtk/gtkexpander.c b/gtk/gtkexpander.c index 4485454222..ebd247d1d5 100644 --- a/gtk/gtkexpander.c +++ b/gtk/gtkexpander.c @@ -887,26 +887,28 @@ gtk_expander_paint (GtkExpander *expander, widget = GTK_WIDGET (expander); context = gtk_widget_get_style_context (widget); + state = gtk_widget_get_state_flags (widget); get_expander_bounds (expander, &clip); gtk_widget_get_allocation (widget, &allocation); gtk_style_context_save (context); + state &= ~(GTK_STATE_FLAG_PRELIGHT); if (expander->priv->prelight) { - state = GTK_STATE_FLAG_PRELIGHT; + state |= GTK_STATE_FLAG_PRELIGHT; gtk_style_context_set_state (context, state); gtk_expander_paint_prelight (expander, cr); } gtk_widget_style_get (widget, "expander-size", &size, NULL); - state = gtk_style_context_get_state (context); - /* Set active flag as per the expanded state */ if (priv->expanded) state |= GTK_STATE_FLAG_ACTIVE; + else + state &= ~(GTK_STATE_FLAG_ACTIVE); gtk_style_context_set_state (context, state); gtk_style_context_add_class (context, GTK_STYLE_CLASS_EXPANDER);