summaryrefslogtreecommitdiffstats
path: root/src/core
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-08 22:44:32 +0000
commit1d87b4c9546b9dc82f782d2e465ab638ffcf7231 (patch)
tree151c9ab7b3365f1ff56a33660ece277301e4ae72 /src/core
parent7d82e53efe714964438a277fe79a04aed9967978 (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.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/core/clipboard_qt.cpp b/src/core/clipboard_qt.cpp
index 6549a19da..c8a94314d 100644
--- a/src/core/clipboard_qt.cpp
+++ b/src/core/clipboard_qt.cpp
@@ -173,7 +173,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)
}