[gtk/gtk-3-24: 1/2] FileChooserWidget: Don't show recent items with private hint set



commit 5111f7af9929f0c9bbd8751f0f307a53cf680291
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Tue Aug 28 20:14:16 2018 +0000

    FileChooserWidget: Don't show recent items with private hint set

 gtk/gtkfilechooserwidget.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
---
diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c
index d1dd2f0059..5cdb208ff7 100644
--- a/gtk/gtkfilechooserwidget.c
+++ b/gtk/gtkfilechooserwidget.c
@@ -7460,6 +7460,23 @@ recent_idle_cleanup (gpointer data)
   g_free (load_data);
 }
 
+static gboolean
+recent_item_is_private (GtkRecentInfo *info)
+{
+  gboolean is_private = FALSE;
+
+  if (gtk_recent_info_get_private_hint (info))
+    {
+      const gchar *app_name = g_get_application_name ();
+      gchar **recent_apps = gtk_recent_info_get_applications (info, NULL);
+      is_private = !g_strv_contains ((const char *const*) recent_apps,
+                                     app_name);
+      g_strfreev (recent_apps);
+    }
+
+  return is_private;
+}
+
 /* Populates the file system model with the GtkRecentInfo* items
  * in the provided list; frees the items
  */
@@ -7481,6 +7498,9 @@ populate_model_with_recent_items (GtkFileChooserWidget *impl,
       GtkRecentInfo *info = l->data;
       GFile *file;
 
+      if (recent_item_is_private (info))
+        continue;
+
       file = g_file_new_for_uri (gtk_recent_info_get_uri (info));
       _gtk_file_system_model_add_and_query_file (priv->recent_model,
                                                  file,


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