From: Carlos Garcia Campos Date: Sat, 9 Oct 2010 14:53:07 +0000 (+0200) Subject: [gimpcellrenderertoggle] Paint a shadow when the mouse is over the cell renderer X-Git-Tag: EVINCE_2_91_1~9 X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=0a2d3c2d9dd1158dfb8cacd72abb498acd0e6fef;p=evince.git [gimpcellrenderertoggle] Paint a shadow when the mouse is over the cell renderer --- diff --git a/cut-n-paste/gimpcellrenderertoggle/gimpcellrenderertoggle.c b/cut-n-paste/gimpcellrenderertoggle/gimpcellrenderertoggle.c index bfe5d220..e6a505f1 100644 --- a/cut-n-paste/gimpcellrenderertoggle/gimpcellrenderertoggle.c +++ b/cut-n-paste/gimpcellrenderertoggle/gimpcellrenderertoggle.c @@ -285,6 +285,7 @@ gimp_cell_renderer_toggle_render (GtkCellRenderer *cell, GtkStyle *style = gtk_widget_get_style (widget); GdkRectangle toggle_rect; GdkRectangle draw_rect; + GdkRectangle clip_rect; GtkStateType state; gboolean active; gint xpad; @@ -338,6 +339,23 @@ gimp_cell_renderer_toggle_render (GtkCellRenderer *cell, state = GTK_STATE_INSENSITIVE; } + if ((flags & GTK_CELL_RENDERER_PRELIT) && + gdk_cairo_get_clip_rectangle(cr, &clip_rect) && + gdk_rectangle_intersect (&clip_rect, cell_area, &draw_rect)) + { + cairo_save (cr); + gdk_cairo_rectangle (cr, &draw_rect); + cairo_clip (cr); + gtk_paint_shadow (style, + cr, + state, + active ? GTK_SHADOW_IN : GTK_SHADOW_OUT, + widget, NULL, + toggle_rect.x, toggle_rect.y, + toggle_rect.width, toggle_rect.height); + cairo_restore (cr); + } + if (active) { GdkPixbuf *insensitive = NULL;