summaryrefslogtreecommitdiff
path: root/gtk/gtkicontheme.c
diff options
context:
space:
mode:
authorStefano Facchini <stefano.facchini@gmail.com>2014-07-08 14:12:39 +0200
committerMatthias Clasen <mclasen@redhat.com>2014-07-09 11:01:40 -0400
commitcd71a23ee2827dc246bf399d7b5274e67e1c33d4 (patch)
treefbc9094d07f1069ff5630a8a35b4fd79e94f0772 /gtk/gtkicontheme.c
parentb31a310d7d9785d48d9d7711d8bf197e04a80f9d (diff)
downloadgtk+-cd71a23ee2827dc246bf399d7b5274e67e1c33d4.tar.gz
icontheme: Use correct URI for icons in resource paths
Fix based on a patch by Stefano Faccini, https://bugzilla.gnome.org/show_bug.cgi?id=732894
Diffstat (limited to 'gtk/gtkicontheme.c')
-rw-r--r--gtk/gtkicontheme.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c
index 8ecfa90fc9..d3a48ccf29 100644
--- a/gtk/gtkicontheme.c
+++ b/gtk/gtkicontheme.c
@@ -1759,6 +1759,7 @@ real_choose_icon (GtkIconTheme *icon_theme,
if (unthemed_icon)
{
+ gchar *uri;
icon_info = icon_info_new (ICON_THEME_DIR_UNTHEMED, size, 1);
/* A SVG icon, when allowed, beats out a XPM icon, but not a PNG icon */
@@ -1770,9 +1771,14 @@ real_choose_icon (GtkIconTheme *icon_theme,
else if (unthemed_icon->no_svg_filename)
icon_info->filename = g_strdup (unthemed_icon->no_svg_filename);
- icon_info->icon_file = g_file_new_for_path (icon_info->filename);
+ if (unthemed_icon->is_resource)
+ uri = g_strconcat ("resource://", icon_info->filename, NULL);
+ else
+ uri = g_strconcat ("file://", icon_info->filename, NULL);
+ icon_info->icon_file = g_file_new_for_uri (uri);
icon_info->is_svg = suffix_from_name (icon_info->filename) == ICON_SUFFIX_SVG;
icon_info->is_resource = unthemed_icon->is_resource;
+ g_free (uri);
}
out:
@@ -3016,11 +3022,18 @@ theme_lookup_icon (IconTheme *theme,
if (min_dir->dir)
{
+ gchar *uri;
+
file = g_strconcat (icon_name, string_from_suffix (suffix), NULL);
icon_info->filename = g_build_filename (min_dir->dir, file, NULL);
- icon_info->icon_file = g_file_new_for_path (icon_info->filename);
+ if (min_dir->is_resource)
+ uri = g_strconcat ("resource://", icon_info->filename, NULL);
+ else
+ uri = g_strconcat ("file://", icon_info->filename, NULL);
+ icon_info->icon_file = g_file_new_for_uri (uri);
icon_info->is_svg = suffix == ICON_SUFFIX_SVG;
icon_info->is_resource = min_dir->is_resource;
+ g_free (uri);
g_free (file);
}
else