[empathy: 3/4] empathy_cell_renderer_expander_render: draw using the proper state (#642098)



commit 313c5081cb99cd116d51353f13827fa8c8e9e289
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date:   Thu Feb 17 14:27:26 2011 +0100

    empathy_cell_renderer_expander_render: draw using the proper state (#642098)

 libempathy-gtk/empathy-cell-renderer-expander.c |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)
---
diff --git a/libempathy-gtk/empathy-cell-renderer-expander.c b/libempathy-gtk/empathy-cell-renderer-expander.c
index b9c6544..53588d6 100644
--- a/libempathy-gtk/empathy-cell-renderer-expander.c
+++ b/libempathy-gtk/empathy-cell-renderer-expander.c
@@ -278,7 +278,7 @@ empathy_cell_renderer_expander_render (GtkCellRenderer      *cell,
 	EmpathyCellRendererExpanderPriv *priv;
 	gint                            x_offset, y_offset;
 	guint                           xpad, ypad;
-
+	GtkStyleContext                 *style;
 
 	expander = (EmpathyCellRendererExpander *) cell;
 	priv = GET_PRIV (expander);
@@ -293,12 +293,23 @@ empathy_cell_renderer_expander_render (GtkCellRenderer      *cell,
 		      "ypad", &ypad,
 		      NULL);
 
-	gtk_render_expander (gtk_widget_get_style_context (widget),
+	style = gtk_widget_get_style_context (widget);
+
+	gtk_style_context_save (style);
+
+	if (priv->expander_style == GTK_EXPANDER_COLLAPSED)
+		gtk_style_context_set_state (style, GTK_STATE_NORMAL);
+	else
+		gtk_style_context_set_state (style, GTK_STATE_ACTIVE);
+
+	gtk_render_expander (style,
 			     cr,
 			     cell_area->x + x_offset + xpad,
 			     cell_area->y + y_offset + ypad,
 			     priv->expander_size,
 			     priv->expander_size);
+
+	gtk_style_context_restore (style);
 }
 
 static gboolean



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]