diff options
author | Matthias Clasen <mclasen@redhat.com> | 2005-04-09 02:51:53 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2005-04-09 02:51:53 +0000 |
commit | 66649cc0282d52285a4b40403c9042d2bad84770 (patch) | |
tree | 38adb6f879336521df0793b00315032c787b8832 /gtk/gtkimage.c | |
parent | 7cbd85cda23d50fb5e5cd036099c43e1d6f03444 (diff) | |
download | gtk+-66649cc0282d52285a4b40403c9042d2bad84770.tar.gz |
If a stock_id is unknown, display the missing image. (#169870, Steven
2005-04-08 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkimage.c (gtk_image_expose, gtk_image_calc_size):
If a stock_id is unknown, display the missing image. (#169870,
Steven Walter)
Diffstat (limited to 'gtk/gtkimage.c')
-rw-r--r-- | gtk/gtkimage.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/gtk/gtkimage.c b/gtk/gtkimage.c index 719c02b004..b512292779 100644 --- a/gtk/gtkimage.c +++ b/gtk/gtkimage.c @@ -1547,6 +1547,9 @@ gtk_image_expose (GtkWidget *widget, GdkBitmap *mask; GdkPixbuf *pixbuf; gboolean needs_state_transform; + GtkStockItem item; + gchar *stock_id; + image = GTK_IMAGE (widget); misc = GTK_MISC (widget); @@ -1634,8 +1637,7 @@ gtk_image_expose (GtkWidget *widget, case GTK_IMAGE_PIXBUF: image_bound.width = gdk_pixbuf_get_width (image->data.pixbuf.pixbuf); - image_bound.height = gdk_pixbuf_get_height (image->data.pixbuf.pixbuf); - + image_bound.height = gdk_pixbuf_get_height (image->data.pixbuf.pixbuf); if (rectangle_intersect_even (&area, &image_bound) && needs_state_transform) @@ -1655,8 +1657,12 @@ gtk_image_expose (GtkWidget *widget, break; case GTK_IMAGE_STOCK: + if (gtk_stock_lookup (image->data.stock.stock_id, &item)) + stock_id = image->data.stock.stock_id; + else + stock_id = GTK_STOCK_MISSING_IMAGE; pixbuf = gtk_widget_render_icon (widget, - image->data.stock.stock_id, + stock_id, image->icon_size, NULL); if (pixbuf) @@ -1951,6 +1957,8 @@ gtk_image_calc_size (GtkImage *image) { GtkWidget *widget = GTK_WIDGET (image); GdkPixbuf *pixbuf = NULL; + GtkStockItem item; + gchar *stock_id; /* We update stock/icon set on every size request, because * the theme could have affected the size; for other kinds of @@ -1960,8 +1968,12 @@ gtk_image_calc_size (GtkImage *image) switch (image->storage_type) { case GTK_IMAGE_STOCK: + if (gtk_stock_lookup (image->data.stock.stock_id, &item)) + stock_id = image->data.stock.stock_id; + else + stock_id = GTK_STOCK_MISSING_IMAGE; pixbuf = gtk_widget_render_icon (widget, - image->data.stock.stock_id, + stock_id, image->icon_size, NULL); break; |