From ddad64e176dc5b406beed0d3f231d4d24b970630 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Thu, 9 Mar 2023 22:33:09 +0100 Subject: [PATCH] Terminal: Fix multi-line copy&paste Previously all lines would be copied into one without lines breaks. Change-Id: Id87dbde84a19ccbc5f53438a305173d1b070eaba Reviewed-by: Cristian Adam --- src/plugins/terminal/terminalwidget.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/plugins/terminal/terminalwidget.cpp b/src/plugins/terminal/terminalwidget.cpp index 3ff38722c2c..2d798d34d45 100644 --- a/src/plugins/terminal/terminalwidget.cpp +++ b/src/plugins/terminal/terminalwidget.cpp @@ -360,7 +360,12 @@ void TerminalWidget::copyToClipboard() const Internal::CellIterator end = m_surface->iteratorAt(m_selection->end); std::u32string s; - std::copy(it, end, std::back_inserter(s)); + for (; it != end; ++it) { + if (it.gridPos().x() == 0 && !s.empty()) + s += U'\n'; + if (*it != 0) + s += *it; + } const QString text = QString::fromUcs4(s.data(), static_cast(s.size()));