gtk/icon-theme: Handle lack of SVG loader gracefully

When loading a SVG icon from a gresource file only containing SVG icons,
but without having a SVG loader available in gdk-pixbuf, we would crash
when trying to eventually load the resource. Fix this by gracefully
handling this by simply failing to load the icon, while the first time
it happens, log a warning.

Fixes: https://gitlab.gnome.org/GNOME/gtk/issues/2084
This commit is contained in:
Jonas Ådahl 2019-08-07 19:20:46 +02:00
parent 434d32bf95
commit 048957cd49

View File

@ -1768,6 +1768,20 @@ real_choose_icon (GtkIconTheme *icon_theme,
icon_info->filename = g_strdup (unthemed_icon->svg_filename);
else if (unthemed_icon->no_svg_filename)
icon_info->filename = g_strdup (unthemed_icon->no_svg_filename);
else
{
static gboolean warned_once = FALSE;
if (!warned_once)
{
g_warning ("Found an icon but could not load it. "
"Most likely gdk-pixbuf does not provide SVG support.");
warned_once = TRUE;
}
g_clear_object (&icon_info);
goto out;
}
if (unthemed_icon->is_resource)
{