diff options
author | Marcus Tillmanns <marcus.tillmanns@qt.io> | 2023-03-24 22:02:23 +0100 |
---|---|---|
committer | Marcus Tillmanns <marcus.tillmanns@qt.io> | 2023-03-27 09:29:47 +0000 |
commit | af5f702f54b696be47e4fd36bc0dc88e03d7c981 (patch) | |
tree | 967e87b3f49da94ebc350b1606a8a3e8546b9636 /src/plugins/terminal/terminalwidget.cpp | |
parent | 83759e80834ea33f8f67c68123a4fe9e13df193f (diff) | |
download | qt-creator-af5f702f54b696be47e4fd36bc0dc88e03d7c981.tar.gz |
Terminal: Make ESC key behavior configurable
Change-Id: I806870c5dd7edbcd3ac2642849cca82f1939ce01
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Diffstat (limited to 'src/plugins/terminal/terminalwidget.cpp')
-rw-r--r-- | src/plugins/terminal/terminalwidget.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/plugins/terminal/terminalwidget.cpp b/src/plugins/terminal/terminalwidget.cpp index bb2f5e210a..cc1b3b9f26 100644 --- a/src/plugins/terminal/terminalwidget.cpp +++ b/src/plugins/terminal/terminalwidget.cpp @@ -808,6 +808,7 @@ bool TerminalWidget::paintFindMatches(QPainter &p, } break; } + if (it == m_search->hits().constEnd()) return false; @@ -821,13 +822,11 @@ bool TerminalWidget::paintSelection(QPainter &p, const QRectF &cellRect, const Q bool isInSelection = false; const int pos = m_surface->gridToPos(gridPos); - if (m_selection) { + if (m_selection) isInSelection = pos >= m_selection->start && pos < m_selection->end; - } - if (isInSelection) { + if (isInSelection) p.fillRect(cellRect, m_currentColors[ColorIndex::Selection]); - } return isInSelection; } @@ -1049,6 +1048,19 @@ void TerminalWidget::keyPressEvent(QKeyEvent *event) } if (event->key() == Qt::Key_Escape) { + bool sendToTerminal = TerminalSettings::instance().sendEscapeToTerminal.value(); + bool send = false; + if (sendToTerminal && event->modifiers() == Qt::NoModifier) + send = true; + else if (!sendToTerminal && event->modifiers() == Qt::ShiftModifier) + send = true; + + if (send) { + event->setModifiers(Qt::NoModifier); + m_surface->sendKey(event); + return; + } + if (m_selection) TerminalCommands::widgetActions().clearSelection.trigger(); else { |