void trash_dir_cb (GtkMenuItem *pmenu, gpointer dummy) { GFile *file; g_assert (!dummy); g_assert (baobab.selected_path); file = g_file_parse_name (baobab.selected_path); if (trash_file (file)) { GtkTreeIter iter; guint64 filesize; GtkTreeSelection *selection; selection = gtk_tree_view_get_selection ((GtkTreeView *) baobab. tree_view); gtk_tree_selection_get_selected (selection, NULL, &iter); gtk_tree_model_get ((GtkTreeModel *) baobab.model, &iter, 5, &filesize, -1); gtk_tree_store_remove (GTK_TREE_STORE (baobab.model), &iter); } g_object_unref (file); }
static gboolean handle_trash_file (XdpTrash *object, GDBusMethodInvocation *invocation, GUnixFDList *fd_list, GVariant *arg_fd) { Request *request = request_from_invocation (invocation); int idx, fd; guint result; REQUEST_AUTOLOCK (request); g_variant_get (arg_fd, "h", &idx); fd = g_unix_fd_list_get (fd_list, idx, NULL); result = trash_file (request->app_info, request->sender, fd); xdp_trash_complete_trash_file (object, invocation, NULL, result); return TRUE; }