diff options
author | Florian Müllner <fmuellner@gnome.org> | 2013-09-17 22:37:06 +0200 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2013-09-20 14:42:41 +0200 |
commit | f081552da1f358a395b177ee71d79b26efcee3d4 (patch) | |
tree | b48378bd20461805d9ffb78b1338e9b31bb825fe | |
parent | 7b2f60831cf19cc7e286e35d23151a8f636903d6 (diff) | |
download | gtk+-f081552da1f358a395b177ee71d79b26efcee3d4.tar.gz |
icontheme: Make sure icon_info->scale doesn't end up 0
GdkPixbuf will fail returning %NULL if we try to scale a pixbuf to (0, 0),
which will then trigger an assertion in gtk_icon_info_load_icon_finish();
we never want a scale of 0, so ensure it is at least 1.
https://bugzilla.gnome.org/show_bug.cgi?id=708384
-rw-r--r-- | gtk/gtkicontheme.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c index e9c9838ead..3f1ac3b00f 100644 --- a/gtk/gtkicontheme.c +++ b/gtk/gtkicontheme.c @@ -3721,12 +3721,12 @@ icon_info_ensure_scale_and_pixbuf (GtkIconInfo *icon_info, if (icon_info->forced_size) icon_info->scale = -1; else if (icon_info->dir_type == ICON_THEME_DIR_FIXED) - icon_info->scale = round((gdouble) scaled_desired_size / (icon_info->dir_size * icon_info->dir_scale)); + icon_info->scale = MAX(round((gdouble) scaled_desired_size / (icon_info->dir_size * icon_info->dir_scale)), 1.0); else if (icon_info->dir_type == ICON_THEME_DIR_THRESHOLD) { if (scaled_desired_size >= (icon_info->dir_size - icon_info->threshold) * icon_info->dir_scale && scaled_desired_size <= (icon_info->dir_size + icon_info->threshold) * icon_info->dir_scale) - icon_info->scale = round((gdouble) scaled_desired_size / (icon_info->dir_size * icon_info->dir_scale)); + icon_info->scale = MAX(round((gdouble) scaled_desired_size / (icon_info->dir_size * icon_info->dir_scale)), 1.0); else if (icon_info->dir_size > 0) icon_info->scale =(gdouble) scaled_desired_size / (icon_info->dir_size * icon_info->dir_scale); } |