[gtk+/gtk-2-24] Properly use GContentType
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-2-24] Properly use GContentType
- Date: Thu, 9 Mar 2017 03:45:10 +0000 (UTC)
commit 1fb9e0390efa4a3f71902fde900a08ced4cc3064
Author: TingPing <tingping tingping se>
Date: Sun Aug 17 06:14:58 2014 -0400
Properly use GContentType
https://bugzilla.gnome.org/show_bug.cgi?id=734946
gtk/gtkfilefilter.c | 19 +++++++++++++++----
gtk/gtkrecentfilter.c | 17 ++++++++++++++---
2 files changed, 29 insertions(+), 7 deletions(-)
---
diff --git a/gtk/gtkfilefilter.c b/gtk/gtkfilefilter.c
index 5a6b411..f936a1c 100644
--- a/gtk/gtkfilefilter.c
+++ b/gtk/gtkfilefilter.c
@@ -372,13 +372,24 @@ gtk_file_filter_filter (GtkFileFilter *filter,
if ((filter_info->contains & rule->needed) != rule->needed)
continue;
-
+
switch (rule->type)
{
case FILTER_RULE_MIME_TYPE:
- if (filter_info->mime_type != NULL &&
- g_content_type_is_a (filter_info->mime_type, rule->u.mime_type))
- return TRUE;
+ if (filter_info->mime_type != NULL)
+ {
+ gchar *filter_content_type, *rule_content_type;
+ gboolean match;
+
+ filter_content_type = g_content_type_from_mime_type (filter_info->mime_type);
+ rule_content_type = g_content_type_from_mime_type (rule->u.mime_type);
+ match = g_content_type_is_a (filter_content_type, rule_content_type);
+ g_free (filter_content_type);
+ g_free (rule_content_type);
+
+ if (match)
+ return TRUE;
+ }
break;
case FILTER_RULE_PATTERN:
if (filter_info->display_name != NULL &&
diff --git a/gtk/gtkrecentfilter.c b/gtk/gtkrecentfilter.c
index 9e87998..9eb901d 100644
--- a/gtk/gtkrecentfilter.c
+++ b/gtk/gtkrecentfilter.c
@@ -485,9 +485,20 @@ gtk_recent_filter_filter (GtkRecentFilter *filter,
switch (rule->type)
{
case FILTER_RULE_MIME_TYPE:
- if (filter_info->mime_type != NULL &&
- g_content_type_is_a (filter_info->mime_type, rule->u.mime_type))
- return TRUE;
+ if (filter_info->mime_type != NULL)
+ {
+ gchar *filter_content_type, *rule_content_type;
+ gboolean match;
+
+ filter_content_type = g_content_type_from_mime_type (filter_info->mime_type);
+ rule_content_type = g_content_type_from_mime_type (rule->u.mime_type);
+ match = g_content_type_is_a (filter_content_type, rule_content_type);
+ g_free (filter_content_type);
+ g_free (rule_content_type);
+
+ if (match)
+ return TRUE;
+ }
break;
case FILTER_RULE_APPLICATION:
if (filter_info->applications)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]