> Расшифрую что сказал чел выше:
>> А зачем вообще вяленный нужен, если он не умеет by-design то, что делают Иксы, но перекладывает это на авторов мелких проектов? в качестве "костыляйте велосипеды тысячу раз под каждый мелкий проект" Вот сам код https://gitlab.gnome.org/GNOME/file-roller/-/blob/master/src.... В баге даже в комментах написали, что проблема в строке 4435 в функции (да и вообще весь код - эпичное костыльное поле)
static char *
get_xds_atom_value (GdkDragContext *context)
{
char *data = NULL;
char *ret;
int len; g_return_val_if_fail (context != NULL, NULL);
g_return_val_if_fail (gdk_drag_context_get_source_window (context) != NULL, NULL);
if (gdk_property_get (gdk_drag_context_get_source_window (context),
XDS_ATOM, TEXT_ATOM,
0, MAX_XDS_ATOM_VAL_LEN,
FALSE, NULL, NULL, &len,
(unsigned char **) &ret))
{
data = g_strndup (ret, len);
g_free (ret);
}
return data;
}
Потому что эта функция GDK (gdk_property_get()) - обёртка над XGetWindowProperty() ( https://docs.gtk.org/gdk3/func.property_get.html ), что очевидно не реализовано для Wayland и всегда возвращает FALSE. И, по-хорошему, надо переписать логику DnD без собственных костылей (я так понимаю, если захочется GTK4 это всё равно придётся сделать).
К слову, в GNOME DnD нормально работает и, например, с DeaDBeeF (XWayland), например, который собран с GTK+3.10 и про Wayland вообще не в курсе, и со всякими nautilus-ами. К слову, сейчас специально запустил и даже с древним XArchiver работает.
Поэтому вопросы больше к костылям file-roller-а (ну можно, конечно, поскрипеть зубами на GTK), вот только при чём здесь wayland протокол - вот это загадка.