summaryrefslogtreecommitdiff
path: root/devel/glib20/files/patch-gio_gdesktopappinfo.c
diff options
context:
space:
mode:
Diffstat (limited to 'devel/glib20/files/patch-gio_gdesktopappinfo.c')
-rw-r--r--devel/glib20/files/patch-gio_gdesktopappinfo.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/devel/glib20/files/patch-gio_gdesktopappinfo.c b/devel/glib20/files/patch-gio_gdesktopappinfo.c
new file mode 100644
index 000000000000..73283b44dbab
--- /dev/null
+++ b/devel/glib20/files/patch-gio_gdesktopappinfo.c
@@ -0,0 +1,35 @@
+--- gio/gdesktopappinfo.c.orig 2011-09-25 11:41:14.000000000 -0400
++++ gio/gdesktopappinfo.c 2011-09-25 11:41:18.000000000 -0400
+@@ -1515,18 +1515,29 @@ update_mimeapps_list (const char *deskt
+ */
+ if (!explicit_default)
+ {
+- system_list = get_all_desktop_entries_for_mime_type (content_type, (const char **) list, FALSE, NULL);
++ char *user_default;
++ /* The system default can be in the list, don't exclude it */
++ system_list = get_all_desktop_entries_for_mime_type (content_type, NULL, FALSE, &user_default);
+
+- if (system_list != NULL)
++ string = NULL;
++ if (user_default != NULL)
++ {
++ /* There is an existing default set in a lower priority defaults file, re-use it */
++ string = user_default;
++ }
++ else if (system_list != NULL)
+ {
+ string = system_list->data;
+-
++ }
++ if (string)
++ {
+ g_key_file_set_string (key_file,
+ DEFAULT_APPLICATIONS_GROUP,
+ content_types[k],
+ string);
+ }
+
++ g_free (user_default);
+ g_list_free_full (system_list, g_free);
+ }
+ }