From cf9f722ef2c7cc8ad7903e62af0c054f8f1ee98b Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Fri, 26 Feb 2021 18:25:58 +0100 Subject: [PATCH] Klipper Waylandclipboard: force offer of specific mimetype to fix pasting to gtk applications --- klipper/systemclipboard/waylandclipboard.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/klipper/systemclipboard/waylandclipboard.cpp b/klipper/systemclipboard/waylandclipboard.cpp index 35975ddfc..0685b858e 100644 --- a/klipper/systemclipboard/waylandclipboard.cpp +++ b/klipper/systemclipboard/waylandclipboard.cpp @@ -195,13 +195,23 @@ DataControlSource::DataControlSource(struct ::zwlr_data_control_source_v1 *id, Q for (const QString &format : mimeData->formats()) { offer(format); } + if(mimeData->hasText()) + { + // ensure GTK applications get this mimetype to avoid them discarding the offer + offer(QStringLiteral("text/plain;charset=utf-8")); + } } void DataControlSource::zwlr_data_control_source_v1_send(const QString &mime_type, int32_t fd) { QFile c; + QString send_mime_type = mime_type; + if(send_mime_type == QStringLiteral("text/plain;charset=utf-8")) { + // if we get a request on the fallback mime, send the data from the original mime type + send_mime_type = QStringLiteral("text/plain"); + } if (c.open(fd, QFile::WriteOnly, QFile::AutoCloseHandle)) { - c.write(m_mimeData->data(mime_type)); + c.write(m_mimeData->data(send_mime_type)); c.close(); } }