From ac1cf1304b10ea099e701d00d6e9e25222411e5c Mon Sep 17 00:00:00 2001 From: Benedikt Meurer <benny@xfce.org> Date: Mon, 20 Mar 2006 19:28:39 +0000 Subject: [PATCH] 2006-03-20 Benedikt Meurer <benny@xfce.org> * thunar/thunar-icon-renderer.c(thunar_icon_renderer_render): Render the icon properly when the widget state is insensitive. (Old svn revision: 20505) --- ChangeLog | 5 +++++ thunar/thunar-icon-renderer.c | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/ChangeLog b/ChangeLog index 5310bb2d6..3f63c884d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-03-20 Benedikt Meurer <benny@xfce.org> + + * thunar/thunar-icon-renderer.c(thunar_icon_renderer_render): Render + the icon properly when the widget state is insensitive. + 2006-03-18 Benedikt Meurer <benny@xfce.org> * thunar-vfs/thunar-vfs-xfer.c: Make sure the user can always read and diff --git a/thunar/thunar-icon-renderer.c b/thunar/thunar-icon-renderer.c index b69d6dd71..778324184 100644 --- a/thunar/thunar-icon-renderer.c +++ b/thunar/thunar-icon-renderer.c @@ -354,6 +354,7 @@ thunar_icon_renderer_render (GtkCellRenderer *renderer, ThunarFileIconState icon_state; ThunarIconRenderer *icon_renderer = THUNAR_ICON_RENDERER (renderer); ThunarIconFactory *icon_factory; + GtkIconSource *icon_source; GtkIconTheme *icon_theme; GdkRectangle emblem_area; GdkRectangle icon_area; @@ -451,6 +452,25 @@ thunar_icon_renderer_render (GtkCellRenderer *renderer, } } + /* check if we should render an insensitive icon */ + if (G_UNLIKELY (GTK_WIDGET_STATE (widget) == GTK_STATE_INSENSITIVE || !renderer->sensitive)) + { + /* allocate an icon source */ + icon_source = gtk_icon_source_new (); + gtk_icon_source_set_pixbuf (icon_source, icon); + gtk_icon_source_set_size_wildcarded (icon_source, FALSE); + gtk_icon_source_set_size (icon_source, GTK_ICON_SIZE_SMALL_TOOLBAR); + + /* render the insensitive icon */ + temp = gtk_style_render_icon (widget->style, icon_source, gtk_widget_get_direction (widget), + GTK_STATE_INSENSITIVE, -1, widget, "gtkcellrendererpixbuf"); + g_object_unref (G_OBJECT (icon)); + icon = temp; + + /* release the icon source */ + gtk_icon_source_free (icon_source); + } + /* render the invalid parts of the icon */ gdk_draw_pixbuf (window, widget->style->black_gc, icon, draw_area.x - icon_area.x, draw_area.y - icon_area.y, -- GitLab