Commit 98f58648 authored by Cosimo Cecchi's avatar Cosimo Cecchi

cell-renderer-expander: fix rendering with GTK+3

There are basically three issues here:
- the renderer doesn't add the GTK_STYLE_CLASS_EXPANDER style class when
  rendering, which blocks the theme to apply the intended colors.
- the GtkStateFlags that were set on the context were using GTK_STATE_*
  instead of GTK_STATE_FLAG_*
- the flags set on the context were incomplete, as they were just using
  ACTIVE/NORMAL for expanded/collapsed and not SELECTED/FOCUSED/...

https://bugzilla.gnome.org/show_bug.cgi?id=650590
parent c4e0a0ba
......@@ -275,6 +275,7 @@ empathy_cell_renderer_expander_render (GtkCellRenderer *cell,
gint x_offset, y_offset;
guint xpad, ypad;
GtkStyleContext *style;
GtkStateFlags state;
expander = (EmpathyCellRendererExpander *) cell;
priv = GET_PRIV (expander);
......@@ -292,11 +293,16 @@ empathy_cell_renderer_expander_render (GtkCellRenderer *cell,
style = gtk_widget_get_style_context (widget);
gtk_style_context_save (style);
gtk_style_context_add_class (style, GTK_STYLE_CLASS_EXPANDER);
state = gtk_cell_renderer_get_state (cell, widget, flags);
if (priv->expander_style == GTK_EXPANDER_COLLAPSED)
gtk_style_context_set_state (style, GTK_STATE_NORMAL);
state |= GTK_STATE_FLAG_NORMAL;
else
gtk_style_context_set_state (style, GTK_STATE_ACTIVE);
state |= GTK_STATE_FLAG_ACTIVE;
gtk_style_context_set_state (style, state);
gtk_render_expander (style,
cr,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment