Я использую gtk для очистки буфера обмена на платформах Linux с X11, и я надеялся, что он будет работать на всех платформах Linux. Однако мой код gtk не работает для Fedora KDE и некоторых дистрибутивов Fedora. когда clipboard_clear
функция вызывается, буфер обмена не очищается.
void clipboard_clear() {
gtk_init(&args,NULL);
GtkClipboard* cb = gtk_clipboard_get(GDK_SELECTION_PRIMARY);
gtk_clipboard_clear(cb);
gtk_clipboard_set_text(cb, "", 0);
cb = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
gtk_clipboard_clear(cb);
gtk_clipboard_set_text(cb, "", 0);
}
Есть ли что-нибудь, что я могу сделать, чтобы заставить эту реализацию gtk работать так, как это предполагается в Fedora KDE? Если нет, есть ли библиотеки, которые могут очищать буфер обмена в KDE и быть статически связанными? (Qt не входит в их число из-за лицензионных ограничений.)
Внешние менеджеры буфера обмена предотвращают очистку буфера обмена вышеуказанным кодом.
На Fedora 19 KDE, klipper
пришел предустановленный. После его закрытия проблем с очисткой функции больше не было. Аналогично в Fedora 19 LXDE, clipit
пришел предустановленный.
Других решений пока нет …