Terminal: Fix nano paste

Nano does not work well with pasted \n, so we replace them with \r.

Change-Id: I2518e6e2095b5ee76e8eca55dede7ed708f21b9e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
Marcus Tillmanns
2023-07-25 08:35:38 +02:00
parent 7786eb3088
commit 7ca17c2aa4

View File

@@ -419,8 +419,14 @@ void TerminalSurface::pasteFromClipboard(const QString &clipboardText)
return;
vterm_keyboard_start_paste(d->m_vterm.get());
for (unsigned int ch : clipboardText.toUcs4())
for (unsigned int ch : clipboardText.toUcs4()) {
// Workaround for weird nano behavior to correctly paste newlines
// see: http://savannah.gnu.org/bugs/?49176
// and: https://github.com/kovidgoyal/kitty/issues/994
if (ch == '\n')
ch = '\r';
vterm_keyboard_unichar(d->m_vterm.get(), ch, VTERM_MOD_NONE);
}
vterm_keyboard_end_paste(d->m_vterm.get());
if (!d->m_altscreen) {