TerminalSurface: Fix sendKey()

Pass mod into vterm_keyboard_unichar(), instead of
unconditional VTERM_MOD_NONE.

Change-Id: I850c5cb6d00302e46cfce6e695e159a5ce99dafb
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
Jarek Kobus
2023-08-04 10:07:30 +02:00
parent 94aff7cf50
commit a9eabeacef

View File

@@ -573,11 +573,10 @@ void TerminalSurface::sendKey(QKeyEvent *event)
// like ctrl+i for tab or ctrl+j for newline. // like ctrl+i for tab or ctrl+j for newline.
// Workaround for "ALT+SHIFT+/" (\ on german mac keyboards) // Workaround for "ALT+SHIFT+/" (\ on german mac keyboards)
if (mod == (VTERM_MOD_SHIFT | VTERM_MOD_ALT) && event->key() == Qt::Key_Slash) { if (mod == (VTERM_MOD_SHIFT | VTERM_MOD_ALT) && event->key() == Qt::Key_Slash)
mod = VTERM_MOD_NONE; mod = VTERM_MOD_NONE;
}
vterm_keyboard_unichar(d->m_vterm.get(), event->text().toUcs4()[0], VTERM_MOD_NONE); vterm_keyboard_unichar(d->m_vterm.get(), event->text().toUcs4()[0], mod);
} else if (mod == VTERM_MOD_CTRL && event->key() >= Qt::Key_A && event->key() < Qt::Key_Z) { } else if (mod == VTERM_MOD_CTRL && event->key() >= Qt::Key_A && event->key() < Qt::Key_Z) {
vterm_keyboard_unichar(d->m_vterm.get(), 'a' + (event->key() - Qt::Key_A), mod); vterm_keyboard_unichar(d->m_vterm.get(), 'a' + (event->key() - Qt::Key_A), mod);
} }