summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Varga <pvarga@inf.u-szeged.hu>2022-04-06 11:14:31 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-04-09 00:26:34 +0000
commit61c32f966ffdc416e92fd3af3379bf7b65f5d8f3 (patch)
tree3945c626c5d6ffb26508c42847b28958d35464b2
parentc17cf158b69ea6bb155d88b236d8d7918d0cbb56 (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>
-rw-r--r--src/core/clipboard_qt.cpp11
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)
}