From 88032cb541fd5be40284dd10a58f7080e64b4979 Mon Sep 17 00:00:00 2001 From: Ryan Gonzalez Date: Tue, 15 Sep 2020 18:06:56 -0500 Subject: [PATCH] trash portal: Handle portal failures Previously, only whether or not the D-Bus call itself succeeded was checked, regardless of the result code from the actual trash operation. --- gio/gtrashportal.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gio/gtrashportal.c b/gio/gtrashportal.c index 9922be21f..03c933297 100644 --- a/gio/gtrashportal.c +++ b/gio/gtrashportal.c @@ -74,8 +74,9 @@ g_trash_portal_trash_file (GFile *file, GUnixFDList *fd_list = NULL; int fd, fd_in, errsv; gboolean ret = FALSE; + guint portal_result = 0; GXdpTrash *proxy; - + proxy = ensure_trash_portal (); if (proxy == NULL) { @@ -114,11 +115,17 @@ g_trash_portal_trash_file (GFile *file, ret = gxdp_trash_call_trash_file_sync (proxy, g_variant_new_handle (fd_in), fd_list, - NULL, + &portal_result, NULL, NULL, error); + if (ret && portal_result != 1) + { + g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, "Trash portal failed on %s", path); + ret = FALSE; + } + out: g_clear_object (&fd_list); g_free (path);