diff options
author | Peter Varga <pvarga@inf.u-szeged.hu> | 2022-04-06 11:14:31 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-04-09 00:26:34 +0000 |
commit | 61c32f966ffdc416e92fd3af3379bf7b65f5d8f3 (patch) | |
tree | 3945c626c5d6ffb26508c42847b28958d35464b2 /src/core | |
parent | c17cf158b69ea6bb155d88b236d8d7918d0cbb56 (diff) |
Do not store CF_HTML header in QMimeData
QMimeData doesn't handle it.
Keep
"<html>\r\n<body>\r\n<!--StartFragment-->"
and
"<!--EndFragment-->\r\n</body>\r\n</html>"
tags because they are required for proper pasting of an HTML fragment on
Windows.
Fixes: QTBUG-100806
Task-number: QTBUG-92539
Change-Id: I9e8a2f9592e56b9acc011b7640e589c43b558543
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit 91ef7c19f47a97a82a2f143c99dfd3b885d65729)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/clipboard_qt.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/core/clipboard_qt.cpp b/src/core/clipboard_qt.cpp index 09c08d7f6..e69148ce4 100644 --- a/src/core/clipboard_qt.cpp +++ b/src/core/clipboard_qt.cpp @@ -177,7 +177,16 @@ void ClipboardQt::WriteHTML(const char *markup_data, size_t markup_len, const ch url.assign(url_data, url_len); std::string cf_html = HtmlToCFHtml(markup_string.toStdString(), url); - getUncommittedData()->setHtml(QString::fromStdString(cf_html)); + size_t html_start = std::string::npos; + size_t fragment_start = std::string::npos; + size_t fragment_end = std::string::npos; + CFHtmlExtractMetadata(cf_html, nullptr, &html_start, &fragment_start, &fragment_end); + + DCHECK(fragment_start != std::string::npos && fragment_end != std::string::npos + && html_start != std::string::npos); + DCHECK(fragment_start >= html_start && fragment_end >= fragment_start); + + getUncommittedData()->setHtml(QString::fromStdString(cf_html.substr(html_start))); #endif // !defined(Q_OS_WIN) } |