From dc8694ff20d5faa006b177d6f8169d3ac99d1e11 Mon Sep 17 00:00:00 2001 From: SerhiiGadzhilov <71632867+SerhiiGadzhilov@users.noreply.github.com> Date: Fri, 4 Jun 2021 15:51:49 +0300 Subject: [PATCH] SYNERGY-928 Wrong encoding for text copied between linux and windows --- src/lib/platform/XWindowsClipboard.cpp | 2 ++ src/lib/platform/XWindowsClipboardHTMLConverter.cpp | 11 +++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/lib/platform/XWindowsClipboard.cpp b/src/lib/platform/XWindowsClipboard.cpp index 184a58beb..3102d612d 100644 --- a/src/lib/platform/XWindowsClipboard.cpp +++ b/src/lib/platform/XWindowsClipboard.cpp @@ -79,6 +79,8 @@ XWindowsClipboard::XWindowsClipboard(Display* display, // add converters, most desired first m_converters.push_back(new XWindowsClipboardHTMLConverter(m_display, "text/html")); + m_converters.push_back(new XWindowsClipboardHTMLConverter(m_display, + "application/x-moz-nativehtml")); m_converters.push_back(new XWindowsClipboardBMPConverter(m_display)); m_converters.push_back(new XWindowsClipboardUTF8Converter(m_display, "text/plain;charset=UTF-8")); diff --git a/src/lib/platform/XWindowsClipboardHTMLConverter.cpp b/src/lib/platform/XWindowsClipboardHTMLConverter.cpp index 2e743f7e0..fb7cbdde4 100644 --- a/src/lib/platform/XWindowsClipboardHTMLConverter.cpp +++ b/src/lib/platform/XWindowsClipboardHTMLConverter.cpp @@ -57,11 +57,18 @@ XWindowsClipboardHTMLConverter::getDataSize() const String XWindowsClipboardHTMLConverter::fromIClipboard(const String& data) const { - return Unicode::UTF8ToUTF16(data); + return data; } String XWindowsClipboardHTMLConverter::toIClipboard(const String& data) const { - return Unicode::UTF16ToUTF8(data); + if (Unicode::isUTF8(data)) + { + return data; + } + else + { + return Unicode::UTF16ToUTF8(data); + } }