summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorMatthias Clasen <matthiasc@src.gnome.org>2009-02-11 07:25:57 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2009-02-11 07:25:57 +0000
commit44fb5dcfc81f60d5e61a936a0008378b0751184f (patch)
tree3d8cd59cc23f8f867e1654b805ba8dc32fc5ba74 /gtk
parent6bd8756269730898f3f278e1d10573d417e0c137 (diff)
downloadgtk+-44fb5dcfc81f60d5e61a936a0008378b0751184f.tar.gz
Fix rendering of icons in some cases
svn path=/trunk/; revision=22308
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtkentry.c30
1 files changed, 22 insertions, 8 deletions
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index 36bcee6bf4..04ae129fc7 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -6252,6 +6252,7 @@ gtk_entry_ensure_pixbuf (GtkEntry *entry,
GtkSettings *settings;
gint width, height;
GtkIconInfo *info;
+ gint state;
if (!icon_info || icon_info->pixbuf)
return;
@@ -6262,10 +6263,13 @@ gtk_entry_ensure_pixbuf (GtkEntry *entry,
case GTK_IMAGE_PIXBUF:
break;
case GTK_IMAGE_STOCK:
+ state = GTK_WIDGET_STATE (entry);
+ GTK_WIDGET_STATE (entry) = GTK_STATE_NORMAL;
icon_info->pixbuf = gtk_widget_render_icon (GTK_WIDGET (entry),
icon_info->stock_id,
GTK_ICON_SIZE_MENU,
NULL);
+ GTK_WIDGET_STATE (entry) = state;
break;
case GTK_IMAGE_ICON_NAME:
@@ -6285,10 +6289,15 @@ gtk_entry_ensure_pixbuf (GtkEntry *entry,
0, NULL);
if (icon_info->pixbuf == NULL)
- icon_info->pixbuf = gtk_widget_render_icon (GTK_WIDGET (entry),
- GTK_STOCK_MISSING_IMAGE,
- GTK_ICON_SIZE_MENU,
- NULL);
+ {
+ state = GTK_WIDGET_STATE (entry);
+ GTK_WIDGET_STATE (entry) = GTK_STATE_NORMAL;
+ icon_info->pixbuf = gtk_widget_render_icon (GTK_WIDGET (entry),
+ GTK_STOCK_MISSING_IMAGE,
+ GTK_ICON_SIZE_MENU,
+ NULL);
+ GTK_WIDGET_STATE (entry) = state;
+ }
}
break;
@@ -6314,10 +6323,15 @@ gtk_entry_ensure_pixbuf (GtkEntry *entry,
}
if (icon_info->pixbuf == NULL)
- icon_info->pixbuf = gtk_widget_render_icon (GTK_WIDGET (entry),
- GTK_STOCK_MISSING_IMAGE,
- GTK_ICON_SIZE_MENU,
- NULL);
+ {
+ state = GTK_WIDGET_STATE (entry);
+ GTK_WIDGET_STATE (entry) = GTK_STATE_NORMAL;
+ icon_info->pixbuf = gtk_widget_render_icon (GTK_WIDGET (entry),
+ GTK_STOCK_MISSING_IMAGE,
+ GTK_ICON_SIZE_MENU,
+ NULL);
+ GTK_WIDGET_STATE (entry) = state;
+ }
}
break;