SF.net SVN: geany:[5374] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Sun Nov 7 15:24:26 UTC 2010
Revision: 5374
http://geany.svn.sourceforge.net/geany/?rev=5374&view=rev
Author: eht16
Date: 2010-11-07 15:24:26 +0000 (Sun, 07 Nov 2010)
Log Message:
-----------
Use non-GIO mime-type icon lookup if GIO lookup fails.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/ui_utils.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2010-11-07 15:06:15 UTC (rev 5373)
+++ trunk/ChangeLog 2010-11-07 15:24:26 UTC (rev 5374)
@@ -5,6 +5,8 @@
is available and to be used regardless of the USE_GIO_FILEMON flag.
* wscript:
Fix installation of template files.
+ * src/ui_utils.c:
+ Use non-GIO mime-type icon lookup if GIO lookup fails.
2010-11-07 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
Modified: trunk/src/ui_utils.c
===================================================================
--- trunk/src/ui_utils.c 2010-11-07 15:06:15 UTC (rev 5373)
+++ trunk/src/ui_utils.c 2010-11-07 15:24:26 UTC (rev 5374)
@@ -2472,33 +2472,39 @@
{
g_return_val_if_reached(NULL);
}
- theme = gtk_icon_theme_get_default();
ctype = g_content_type_from_mime_type(mime_type);
- gicon = g_content_type_get_icon(ctype);
- info = gtk_icon_theme_lookup_by_gicon(theme, gicon, real_size, 0);
- g_object_unref(gicon);
- g_free(ctype);
+ if (ctype != NULL)
+ {
+ gicon = g_content_type_get_icon(ctype);
+ theme = gtk_icon_theme_get_default();
+ info = gtk_icon_theme_lookup_by_gicon(theme, gicon, real_size, 0);
+ g_object_unref(gicon);
+ g_free(ctype);
- if (info)
+ if (info != NULL)
+ {
+ icon = gtk_icon_info_load_icon(info, NULL);
+ gtk_icon_info_free(info);
+ }
+ }
+#endif
+ /* fallback for builds without GIO or if icon lookup failed, like it might happen on Windows */
+ if (icon == NULL)
{
- icon = gtk_icon_info_load_icon(info, NULL);
- gtk_icon_info_free(info);
- }
-#else
- const gchar *stock_id = GTK_STOCK_FILE;
- GtkIconSet *icon_set;
+ const gchar *stock_id = GTK_STOCK_FILE;
+ GtkIconSet *icon_set;
- if (strstr(mime_type, "directory"))
- stock_id = GTK_STOCK_DIRECTORY;
+ if (strstr(mime_type, "directory"))
+ stock_id = GTK_STOCK_DIRECTORY;
- icon_set = gtk_icon_factory_lookup_default(stock_id);
- if (icon_set)
- {
- icon = gtk_icon_set_render_icon(icon_set, gtk_widget_get_default_style(),
- gtk_widget_get_default_direction(),
- GTK_STATE_NORMAL, size, NULL, NULL);
+ icon_set = gtk_icon_factory_lookup_default(stock_id);
+ if (icon_set)
+ {
+ icon = gtk_icon_set_render_icon(icon_set, gtk_widget_get_default_style(),
+ gtk_widget_get_default_direction(),
+ GTK_STATE_NORMAL, size, NULL, NULL);
+ }
}
-#endif
return icon;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list