static GdkAtom text_plain_locale_atom;
static GdkAtom text_uri_list_atom;
static GdkAtom portal_files_atom;
+static GdkAtom portal_filetransfer_atom;
static void
init_atoms (void)
text_uri_list_atom = gdk_atom_intern_static_string ("text/uri-list");
portal_files_atom = gdk_atom_intern_static_string ("application/vnd.portal.files");
+ portal_filetransfer_atom = gdk_atom_intern_static_string ("application/vnd.portal.filetransfer");
}
}
#ifndef G_OS_WIN32
if (file_transfer_portal_supported ())
- gtk_target_list_add (list, portal_files_atom, 0, info);
+ {
+ gtk_target_list_add (list, portal_filetransfer_atom, 0, info);
+ gtk_target_list_add (list, portal_files_atom, 0, info);
+ }
#endif
}
}
}
#ifndef G_OS_WIN32
- else if (selection_data->target == portal_files_atom &&
+ else if ((selection_data->target == portal_filetransfer_atom ||
+ selection_data->target == portal_files_atom) &&
file_transfer_portal_supported ())
{
GPtrArray *a;
}
gtk_selection_data_set (selection_data,
- portal_files_atom,
+ selection_data->target,
8, (guchar *)key, strlen (key));
g_strfreev (files);
}
#ifndef G_OS_WIN32
else if (selection_data->length >= 0 &&
- selection_data->type == portal_files_atom &&
+ (selection_data->type == portal_filetransfer_atom ||
+ selection_data->type == portal_files_atom) &&
file_transfer_portal_supported ())
{
char *key;
for (i = 0; i < n_targets; i++)
{
if (targets[i] == text_uri_list_atom ||
+ targets[i] == portal_filetransfer_atom ||
targets[i] == portal_files_atom)
{
result = TRUE;