[gtk: 1/2] gtk/icon-theme: Handle lack of SVG loader gracefully



commit 048957cd496ea86d1a8c1bcee376dcb421de5ff1
Author: Jonas Ã…dahl <jadahl gmail com>
Date:   Wed Aug 7 19:20:46 2019 +0200

    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

 gtk/gtkicontheme.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
---
diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c
index 117ccceb12..df13afc5b8 100644
--- a/gtk/gtkicontheme.c
+++ b/gtk/gtkicontheme.c
@@ -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)
         {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]