diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2011-01-23 14:31:19 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2011-01-27 20:57:13 +0100 |
commit | 3d57787d6e1ac9f8d9bbb98e61868355ec9f09a5 (patch) | |
tree | e0b7e76cd2a23a2d8350022fe424aef4b1db3208 /gtk/gtkcellrenderer.c | |
parent | e3a77b9db8ab59d17a9a333b94dd1c7fae1862c4 (diff) | |
download | gtk+-3d57787d6e1ac9f8d9bbb98e61868355ec9f09a5.tar.gz |
Set "cell" class and state before rendering a cellrenderer.
Diffstat (limited to 'gtk/gtkcellrenderer.c')
-rw-r--r-- | gtk/gtkcellrenderer.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/gtk/gtkcellrenderer.c b/gtk/gtkcellrenderer.c index 1f50a59def..75270b960e 100644 --- a/gtk/gtkcellrenderer.c +++ b/gtk/gtkcellrenderer.c @@ -683,6 +683,8 @@ gtk_cell_renderer_render (GtkCellRenderer *cell, { gboolean selected = FALSE; GtkCellRendererPrivate *priv = cell->priv; + GtkStyleContext *context; + GtkStateFlags state; g_return_if_fail (GTK_IS_CELL_RENDERER (cell)); g_return_if_fail (GTK_CELL_RENDERER_GET_CLASS (cell)->render != NULL); @@ -702,13 +704,21 @@ gtk_cell_renderer_render (GtkCellRenderer *cell, gdk_cairo_rectangle (cr, background_area); cairo_clip (cr); + context = gtk_widget_get_style_context (widget); + + gtk_style_context_save (context); + gtk_style_context_add_class (context, GTK_STYLE_CLASS_CELL); + + state = gtk_cell_renderer_get_state (cell, widget, flags); + gtk_style_context_set_state (context, state); + GTK_CELL_RENDERER_GET_CLASS (cell)->render (cell, cr, widget, background_area, cell_area, flags); - + gtk_style_context_restore (context); cairo_restore (cr); } |