[gtk+] filechooser portal: Make sure we can save
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] filechooser portal: Make sure we can save
- Date: Tue, 17 Jan 2017 19:10:07 +0000 (UTC)
commit 4875c689a0e826604953965ffdb71d8b82cae364
Author: Matthias Clasen <mclasen redhat com>
Date: Tue Jan 17 14:08:38 2017 -0500
filechooser portal: Make sure we can save
Explicitly request files for saving to be writable, otherwise
we are at the mercy of the portal, which currently gets it wrong.
gtk/gtkfilechoosernativeportal.c | 15 +++++++++++++--
1 files changed, 13 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkfilechoosernativeportal.c b/gtk/gtkfilechoosernativeportal.c
index 981e0d5..3ab9b35 100644
--- a/gtk/gtkfilechoosernativeportal.c
+++ b/gtk/gtkfilechoosernativeportal.c
@@ -53,6 +53,7 @@ typedef struct {
char *portal_handle;
guint portal_response_signal_id;
gboolean modal;
+ gboolean writable;
gboolean hidden;
@@ -304,6 +305,8 @@ show_portal_file_chooser (GtkFileChooserNative *self,
g_variant_new_string (self->cancel_label));
g_variant_builder_add (&opt_builder, "{sv}", "modal",
g_variant_new_boolean (data->modal));
+ g_variant_builder_add (&opt_builder, "{sv}", "writable",
+ g_variant_new_boolean (data->writable));
g_variant_builder_add (&opt_builder, "{sv}", "filters", get_filters (GTK_FILE_CHOOSER (self)));
if (GTK_FILE_CHOOSER_NATIVE (self)->current_name)
g_variant_builder_add (&opt_builder, "{sv}", "current_name",
@@ -376,6 +379,7 @@ gtk_file_chooser_native_portal_show (GtkFileChooserNative *self)
GDBusConnection *connection;
GtkFileChooserAction action;
const char *method_name;
+ gboolean writable;
if (!gtk_should_use_portal ())
return FALSE;
@@ -387,9 +391,15 @@ gtk_file_chooser_native_portal_show (GtkFileChooserNative *self)
action = gtk_file_chooser_get_action (GTK_FILE_CHOOSER (self));
if (action == GTK_FILE_CHOOSER_ACTION_OPEN)
- method_name = "OpenFile";
+ {
+ method_name = "OpenFile";
+ writable = FALSE;
+ }
else if (action == GTK_FILE_CHOOSER_ACTION_SAVE)
- method_name = "SaveFile";
+ {
+ method_name = "SaveFile";
+ writable = FALSE;
+ }
else
{
g_warning ("GTK_FILE_CHOOSER_ACTION_%s is not supported by GtkFileChooserNativePortal", action ==
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER ? "SELECT_FOLDER" : "CREATE_FOLDER");
@@ -401,6 +411,7 @@ gtk_file_chooser_native_portal_show (GtkFileChooserNative *self)
data->connection = connection;
data->method_name = method_name;
+ data->writable = writable;
if (gtk_native_dialog_get_modal (GTK_NATIVE_DIALOG (self)))
data->modal = TRUE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]