diff -Nru gtk+3.0-3.22.26/debian/changelog gtk+3.0-3.22.26/debian/changelog --- gtk+3.0-3.22.26/debian/changelog 2017-11-28 23:56:41.000000000 +0100 +++ gtk+3.0-3.22.26/debian/changelog 2017-12-13 16:41:01.000000000 +0100 @@ -1,3 +1,12 @@ +gtk+3.0 (3.22.26-2ubuntu1.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Fix LP: #1714518 + - Add debian/patches/present-fuse-mounts-in-filechooser.patch + from upstream + + -- Colin Leroy Wed, 13 Dec 2017 16:40:17 +0100 + gtk+3.0 (3.22.26-2ubuntu1) bionic; urgency=medium * Merge with Debian. Remaining changes: diff -Nru gtk+3.0-3.22.26/debian/patches/present-fuse-mounts-in-filechooser.patch gtk+3.0-3.22.26/debian/patches/present-fuse-mounts-in-filechooser.patch --- gtk+3.0-3.22.26/debian/patches/present-fuse-mounts-in-filechooser.patch 1970-01-01 01:00:00.000000000 +0100 +++ gtk+3.0-3.22.26/debian/patches/present-fuse-mounts-in-filechooser.patch 2017-12-13 16:45:31.000000000 +0100 @@ -0,0 +1,92 @@ +From 0156c52a2cfcc92d89fd7958f639ad47f6891c7c Mon Sep 17 00:00:00 2001 +From: Colin Leroy +Date: Tue, 12 Sep 2017 15:32:36 +0200 +Subject: [PATCH] placesview: Present FUSE-reachable network shares in Other + Locations + +The documentation about gtk_file_chooser_set_local_only() states +that "non-native files may still be available using the native +filesystem via a userspace filesystem (FUSE)." +The code that made this possible in GTK+2 was missing from GTK+3 and +that represented a regression for Linux users in numerous applications +(Firefox, Thunderbird, Chromium, ...) + +https://bugzilla.gnome.org/show_bug.cgi?id=787128 +--- + gtk/gtkplacesview.c | 43 ++++++++++++++++++++++++++++++++++++++++--- + 1 file changed, 40 insertions(+), 3 deletions(-) + +Index: gtk+3.0-3.22.26/gtk/gtkplacesview.c +=================================================================== +--- gtk+3.0-3.22.26.orig/gtk/gtkplacesview.c ++++ gtk+3.0-3.22.26/gtk/gtkplacesview.c +@@ -1183,8 +1183,7 @@ update_places (GtkPlacesView *view) + populate_servers (view); + + /* fetch networks and add them asynchronously */ +- if (!gtk_places_view_get_local_only (view)) +- fetch_networks (view); ++ fetch_networks (view); + + update_view_mode (view); + /* Check whether we still are in a loading state */ +@@ -1905,12 +1904,37 @@ on_listbox_row_activated (GtkPlacesView + } + + static gboolean ++is_mount_locally_accessible (GMount *mount) ++{ ++ GFile *base_file; ++ gchar *path; ++ ++ if (mount == NULL) ++ return FALSE; ++ ++ base_file = g_mount_get_root (mount); ++ ++ if (base_file == NULL) ++ return FALSE; ++ ++ path = g_file_get_path (base_file); ++ g_object_unref (base_file); ++ ++ if (path == NULL) ++ return FALSE; ++ ++ g_free (path); ++ return TRUE; ++} ++ ++static gboolean + listbox_filter_func (GtkListBoxRow *row, + gpointer user_data) + { + GtkPlacesViewPrivate *priv; + gboolean is_network; + gboolean is_placeholder; ++ gboolean is_local = FALSE; + gboolean retval; + gboolean searching; + gchar *name; +@@ -1923,7 +1947,20 @@ listbox_filter_func (GtkListBoxRow *row, + is_network = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (row), "is-network")); + is_placeholder = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (row), "is-placeholder")); + +- if (is_network && priv->local_only) ++ if (GTK_IS_PLACES_VIEW_ROW (row)) ++ { ++ GtkPlacesViewRow *placesviewrow; ++ GMount *mount; ++ ++ placesviewrow = GTK_PLACES_VIEW_ROW (row); ++ g_object_get(G_OBJECT (placesviewrow), "mount", &mount, NULL); ++ ++ is_local = is_mount_locally_accessible (mount); ++ ++ g_clear_object (&mount); ++ } ++ ++ if (is_network && priv->local_only && !is_local) + return FALSE; + + if (is_placeholder && searching) diff -Nru gtk+3.0-3.22.26/debian/patches/series gtk+3.0-3.22.26/debian/patches/series --- gtk+3.0-3.22.26/debian/patches/series 2017-11-28 23:56:41.000000000 +0100 +++ gtk+3.0-3.22.26/debian/patches/series 2017-12-13 16:22:53.000000000 +0100 @@ -25,3 +25,4 @@ unity-headerbar-maximized-mode.patch gtksocket-unscale-before-sending-configurenotify.patch no_content_hub.patch +present-fuse-mounts-in-filechooser.patch