[gtk+/portal: 6/14] portal: Allow forcing it off
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/portal: 6/14] portal: Allow forcing it off
- Date: Mon, 4 Jul 2016 04:51:38 +0000 (UTC)
commit 9bd5dcddd4c22521fa15d61b8414eab349c7f167
Author: Matthias Clasen <mclasen redhat com>
Date: Sat Jun 11 10:23:27 2016 -0400
portal: Allow forcing it off
With GTK_USE_PORTAL=1, try to use the portal even if we if we use
unsupported features. With GTK_USE_PORTAL=0, never use the portal,
as before. What we really want here is to detect the situation
of "sandboxed without full $HOME access" and use the portal in
those cases. If we make the portal smart enough to hand back
direct uris for files that the app can access, we may simplify
the check to just "sandboxed".
gtk/gtkfilechoosernativeportal.c | 20 ++++++++++++++------
1 files changed, 14 insertions(+), 6 deletions(-)
---
diff --git a/gtk/gtkfilechoosernativeportal.c b/gtk/gtkfilechoosernativeportal.c
index 322c5e9..cd875d3 100644
--- a/gtk/gtkfilechoosernativeportal.c
+++ b/gtk/gtkfilechoosernativeportal.c
@@ -277,16 +277,24 @@ gtk_file_chooser_native_portal_show (GtkFileChooserNative *self)
const char *method_name;
const char *signal_name;
GDBusSignalCallback signal_callback;
+ const char *use_portal;
- if (g_getenv ("GTK_USE_PORTAL") == NULL)
- return FALSE;
+ use_portal = g_getenv ("GTK_USE_PORTAL");
+ if (!use_portal)
+ use_portal = "";
- if (gtk_file_chooser_get_extra_widget (GTK_FILE_CHOOSER (self)) != NULL)
+ if (g_str_equal (use_portal, "0"))
return FALSE;
- update_preview_signal = g_signal_lookup ("update-preview", GTK_TYPE_FILE_CHOOSER);
- if (g_signal_has_handler_pending (self, update_preview_signal, 0, TRUE))
- return FALSE;
+ if (!g_str_equal (use_portal, "1"))
+ {
+ if (gtk_file_chooser_get_extra_widget (GTK_FILE_CHOOSER (self)) != NULL)
+ return FALSE;
+
+ update_preview_signal = g_signal_lookup ("update-preview", GTK_TYPE_FILE_CHOOSER);
+ if (g_signal_has_handler_pending (self, update_preview_signal, 0, TRUE))
+ return FALSE;
+ }
connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
if (connection == NULL)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]