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
This commit is contained in:
committed by
Alexander Larsson
parent
7b2f60831c
commit
f081552da1
@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user