summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
authorPeter Varga <pvarga@inf.u-szeged.hu>2022-04-06 11:14:31 +0200
committerPeter Varga <pvarga@inf.u-szeged.hu>2022-04-08 14:56:56 +0200
commit91ef7c19f47a97a82a2f143c99dfd3b885d65729 (patch)
tree4aacbd54d51af00e01e105c76c32379e80f2c647 /src/core
parent4eced65ecb8d777654b843b4f150e4f58f8d9d5d (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 Pick-to: 6.2 6.3 Change-Id: I9e8a2f9592e56b9acc011b7640e589c43b558543 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
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 39faf5c97..18d0a07b1 100644
--- a/src/core/clipboard_qt.cpp
+++ b/src/core/clipboard_qt.cpp
@@ -180,7 +180,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)
}