diff --git a/ChangeLog b/ChangeLog index 51bb510def..dcab6ab6fc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2003-04-11 Sven Neumann + + * app/widgets/gimpwidgets-utils.c (gimp_get_icon_size): return + GTK_ICON_SIZE_INVALID for non-existant icons. + + * app/widgets/gimppreviewrenderer.c: handle GTK_ICON_SIZE_INVALID. + 2003-04-11 Michael Natterer * app/gui/file-new-dialog.c: s/NewImageInfo/FileNewDialog/g, diff --git a/app/widgets/gimppreviewrenderer.c b/app/widgets/gimppreviewrenderer.c index b6a94db7fc..f4889124f0 100644 --- a/app/widgets/gimppreviewrenderer.c +++ b/app/widgets/gimppreviewrenderer.c @@ -709,7 +709,7 @@ gimp_preview_renderer_default_render_stock (GimpPreviewRenderer *renderer, GtkWidget *widget, const gchar *stock_id) { - GdkPixbuf *pixbuf; + GdkPixbuf *pixbuf = NULL; GtkIconSize icon_size; g_return_if_fail (GIMP_IS_PREVIEW_RENDERER (renderer)); @@ -729,10 +729,11 @@ gimp_preview_renderer_default_render_stock (GimpPreviewRenderer *renderer, } icon_size = gimp_get_icon_size (widget, stock_id, GTK_ICON_SIZE_INVALID, - renderer->width, renderer->height); - - pixbuf = gtk_widget_render_icon (widget, stock_id, icon_size, NULL); + renderer->width, renderer->height); + if (icon_size) + pixbuf = gtk_widget_render_icon (widget, stock_id, icon_size, NULL); + if (pixbuf) { if (gdk_pixbuf_get_width (pixbuf) > renderer->width || diff --git a/app/widgets/gimpviewrenderer.c b/app/widgets/gimpviewrenderer.c index b6a94db7fc..f4889124f0 100644 --- a/app/widgets/gimpviewrenderer.c +++ b/app/widgets/gimpviewrenderer.c @@ -709,7 +709,7 @@ gimp_preview_renderer_default_render_stock (GimpPreviewRenderer *renderer, GtkWidget *widget, const gchar *stock_id) { - GdkPixbuf *pixbuf; + GdkPixbuf *pixbuf = NULL; GtkIconSize icon_size; g_return_if_fail (GIMP_IS_PREVIEW_RENDERER (renderer)); @@ -729,10 +729,11 @@ gimp_preview_renderer_default_render_stock (GimpPreviewRenderer *renderer, } icon_size = gimp_get_icon_size (widget, stock_id, GTK_ICON_SIZE_INVALID, - renderer->width, renderer->height); - - pixbuf = gtk_widget_render_icon (widget, stock_id, icon_size, NULL); + renderer->width, renderer->height); + if (icon_size) + pixbuf = gtk_widget_render_icon (widget, stock_id, icon_size, NULL); + if (pixbuf) { if (gdk_pixbuf_get_width (pixbuf) > renderer->width || diff --git a/app/widgets/gimpwidgets-utils.c b/app/widgets/gimpwidgets-utils.c index 7b47476655..d7e3fdca4a 100644 --- a/app/widgets/gimpwidgets-utils.c +++ b/app/widgets/gimpwidgets-utils.c @@ -307,14 +307,17 @@ gimp_get_icon_size (GtkWidget *widget, g_return_val_if_fail (width > 0, icon_size); g_return_val_if_fail (height > 0, icon_size); + icon_set = gtk_style_lookup_icon_set (widget->style, stock_id); + + if (! icon_set) + return GTK_ICON_SIZE_INVALID; + if (! gtk_icon_size_lookup (max_size, &max_width, &max_height)) { max_width = 1024; max_height = 1024; } - icon_set = gtk_style_lookup_icon_set (widget->style, stock_id); - gtk_icon_set_get_sizes (icon_set, &sizes, &n_sizes); for (i = 0; i < n_sizes; i++) diff --git a/etc/templaterc b/etc/templaterc index d00f104ff0..7abd02c473 100644 --- a/etc/templaterc +++ b/etc/templaterc @@ -83,6 +83,16 @@ (resolution-unit inches) (image-type rgb) (fill-type background-fill)) +(GimpTemplate "Toilet Paper (US, 300dpi)" + (stock-id "gimp-toilet-paper") + (width 1350) + (height 1350) + (unit inches) + (xresolution 300.000000) + (yresolution 300.000000) + (resolution-unit inches) + (image-type rgb) + (fill-type background-fill)) (GimpTemplate "CD Cover (300dpi)" (stock-id "gtk-cdrom") (width 1429)