forked from qt-creator/qt-creator
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:
@@ -419,8 +419,14 @@ void TerminalSurface::pasteFromClipboard(const QString &clipboardText)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
vterm_keyboard_start_paste(d->m_vterm.get());
|
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_unichar(d->m_vterm.get(), ch, VTERM_MOD_NONE);
|
||||||
|
}
|
||||||
vterm_keyboard_end_paste(d->m_vterm.get());
|
vterm_keyboard_end_paste(d->m_vterm.get());
|
||||||
|
|
||||||
if (!d->m_altscreen) {
|
if (!d->m_altscreen) {
|
||||||
|
Reference in New Issue
Block a user