vcl/unx/gtk3/gtkinst.cxx | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-)
New commits: commit 6ef1b38885b748d8d48e0628acdf4491f4d8803f Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Thu Jan 19 16:31:03 2023 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Thu Jan 19 19:39:53 2023 +0000 Resolves: tdf#153091 support text/plain without encoding from nedit Change-Id: I56dfc6dfec21b8c57b6f402c53b0229a2a2e7778 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145824 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx index 90055b3ecc57..4fa9dce0a5b5 100644 --- a/vcl/unx/gtk3/gtkinst.cxx +++ b/vcl/unx/gtk3/gtkinst.cxx @@ -825,16 +825,12 @@ public: virtual css::uno::Any SAL_CALL getTransferData(const css::datatransfer::DataFlavor& rFlavor) override { + css::uno::Any aRet; + css::datatransfer::DataFlavor aFlavor(rFlavor); if (aFlavor.MimeType == "text/plain;charset=utf-16") aFlavor.MimeType = "text/plain;charset=utf-8"; - auto it = m_aMimeTypeToGtkType.find(aFlavor.MimeType); - if (it == m_aMimeTypeToGtkType.end()) - return css::uno::Any(); - - css::uno::Any aRet; - GdkClipboard* clipboard = clipboard_get(m_eSelection); #if !GTK_CHECK_VERSION(4, 0, 0) @@ -846,21 +842,25 @@ public: aRet <<= aStr.replaceAll("\r\n", "\n"); return aRet; } - else +#endif + + auto it = m_aMimeTypeToGtkType.find(aFlavor.MimeType); + if (it == m_aMimeTypeToGtkType.end()) + return css::uno::Any(); + +#if !GTK_CHECK_VERSION(4, 0, 0) + GtkSelectionData* data = gtk_clipboard_wait_for_contents(clipboard, + it->second); + if (!data) { - GtkSelectionData* data = gtk_clipboard_wait_for_contents(clipboard, - it->second); - if (!data) - { - return css::uno::Any(); - } - gint length; - const guchar *rawdata = gtk_selection_data_get_data_with_length(data, - &length); - Sequence<sal_Int8> aSeq(reinterpret_cast<const sal_Int8*>(rawdata), length); - gtk_selection_data_free(data); - aRet <<= aSeq; + return css::uno::Any(); } + gint length; + const guchar *rawdata = gtk_selection_data_get_data_with_length(data, + &length); + Sequence<sal_Int8> aSeq(reinterpret_cast<const sal_Int8*>(rawdata), length); + gtk_selection_data_free(data); + aRet <<= aSeq; #else SalInstance* pInstance = GetSalInstance(); read_transfer_result aRes;