From 9b50f0ae49e9c99995ed5289eab656aede142c6b Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Mon, 7 Nov 2011 15:44:59 +0100 Subject: [PATCH] doesn't allow to send socket files https://bugzilla.gnome.org/show_bug.cgi?id=663563 --- libempathy-gtk/empathy-ui-utils.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/libempathy-gtk/empathy-ui-utils.c b/libempathy-gtk/empathy-ui-utils.c index 5d9551d1..a387160d 100644 --- a/libempathy-gtk/empathy-ui-utils.c +++ b/libempathy-gtk/empathy-ui-utils.c @@ -1825,6 +1825,27 @@ file_manager_send_file_response_cb (GtkDialog *widget, gtk_widget_destroy (GTK_WIDGET (widget)); } +static gboolean +filter_cb (const GtkFileFilterInfo *filter_info, + gpointer data) +{ + /* filter out socket files */ + return tp_strdiff (filter_info->mime_type, "inode/socket"); +} + +static GtkFileFilter * +create_file_filter (void) +{ + GtkFileFilter *filter; + + filter = gtk_file_filter_new (); + + gtk_file_filter_add_custom (filter, GTK_FILE_FILTER_MIME_TYPE, filter_cb, + NULL, NULL); + + return filter; +} + void empathy_send_file_with_file_chooser (EmpathyContact *contact) { @@ -1859,6 +1880,9 @@ empathy_send_file_with_file_chooser (EmpathyContact *contact) gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (widget), g_get_home_dir ()); + gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (widget), + create_file_filter ()); + g_signal_connect (widget, "response", G_CALLBACK (file_manager_send_file_response_cb), g_object_ref (contact)); -- 2.39.2