static void
gossip_cell_renderer_expander_render (GtkCellRenderer      *cell,
				      cairo_t              *cr,
				      GtkWidget            *widget,
				      const GdkRectangle   *background_area,
				      const GdkRectangle   *cell_area,
				      GtkCellRendererState  flags)
{
	GossipCellRendererExpander     *expander;
	GossipCellRendererExpanderPriv *priv;
	GtkStyleContext                *style_context;
	gint                            x_offset, y_offset;
	gint                            xpad, ypad;

	expander = (GossipCellRendererExpander*) cell;
	priv = GET_PRIV (expander);

	gossip_cell_renderer_expander_get_size (cell, widget, cell_area,
						&x_offset, &y_offset,
						NULL, NULL);
	gtk_cell_renderer_get_padding (cell, &xpad, &ypad);

	style_context = gtk_widget_get_style_context (widget);
	gtk_style_context_set_state (style_context, priv->style_flags);

	gtk_render_expander (gtk_widget_get_style_context (widget),
			     cr,
			     cell_area->x + x_offset + xpad,
			     cell_area->y + y_offset + ypad,
			     priv->expander_size,
			     priv->expander_size);
}
static void
gossip_cell_renderer_expander_render (GtkCellRenderer      *cell,
                                      cairo_t              *cr,
                                      GtkWidget            *widget,
                                      const GdkRectangle   *background_area,
                                      const GdkRectangle   *cell_area,
                                      GtkCellRendererState  flags)
{
    GossipCellRendererExpander     *expander;
    GossipCellRendererExpanderPriv *priv;
    GtkExpanderStyle                expander_style;
    gint                            x_offset, y_offset;
    gint                            xpad, ypad;

    expander = (GossipCellRendererExpander*) cell;
    priv = GET_PRIV (expander);

    if (priv->animation_node) {
        GtkTreePath *path;
        GdkRectangle rect;

        /* Not sure if I like this ... */
        path = gtk_tree_row_reference_get_path (priv->animation_node);
        gtk_tree_view_get_background_area (priv->animation_view, path,
                                           NULL, &rect);
        gtk_tree_path_free (path);

        if (background_area->y == rect.y)
            expander_style = priv->animation_style;
        else
            expander_style = priv->expander_style;
    } else
        expander_style = priv->expander_style;

    gossip_cell_renderer_expander_get_size (cell, widget, cell_area,
                                            &x_offset, &y_offset,
                                            NULL, NULL);
    gtk_cell_renderer_get_padding (cell, &xpad, &ypad);

    gtk_paint_expander (gtk_widget_get_style (widget),
                        cr,
                        GTK_STATE_NORMAL,
                        widget,
                        "treeview",
                        cell_area->x + x_offset + xpad + priv->expander_size / 2,
                        cell_area->y + y_offset + ypad + priv->expander_size / 2,
                        expander_style);
}