From 3e09ac369dc8e2851ff772b9d9dde92fffd959b2 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Thu, 24 Sep 2020 09:59:04 +0200 Subject: [PATCH] OpenFile portal: use "writable" option to specify our FD is writable When using OpenFile portal and passing a file descriptor, we open the file with qt_safe_open() which by defaults make the file descriptor writable. However we didn't specify in options that the FD is writable which leads into rejection on xdg-desktop-portal side as there is a mismatch between writable FD and read-only request. Pick-to: 5.15 Change-Id: I7a430339a9615f0a054e777e0f3de56e219d1706 Reviewed-by: Aleix Pol Gonzalez Reviewed-by: Thiago Macieira --- src/gui/platform/unix/qgenericunixservices.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gui/platform/unix/qgenericunixservices.cpp b/src/gui/platform/unix/qgenericunixservices.cpp index cd32cd2a0b7..e7b9ae3368d 100644 --- a/src/gui/platform/unix/qgenericunixservices.cpp +++ b/src/gui/platform/unix/qgenericunixservices.cpp @@ -214,8 +214,10 @@ static inline QDBusMessage xdgDesktopPortalOpenFile(const QUrl &url) QDBusUnixFileDescriptor descriptor; descriptor.giveFileDescriptor(fd); - // FIXME parent_window_id and handle writable option - message << QString() << QVariant::fromValue(descriptor) << QVariantMap(); + const QVariantMap options = {{QLatin1String("writable"), true}}; + + // FIXME parent_window_id + message << QString() << QVariant::fromValue(descriptor) << options; return QDBusConnection::sessionBus().call(message); }