summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Müllner <fmuellner@gnome.org>2013-09-17 22:37:06 +0200
committerAlexander Larsson <alexl@redhat.com>2013-09-20 14:42:41 +0200
commitf081552da1f358a395b177ee71d79b26efcee3d4 (patch)
treeb48378bd20461805d9ffb78b1338e9b31bb825fe
parent7b2f60831cf19cc7e286e35d23151a8f636903d6 (diff)
downloadgtk+-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.c4
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);
}