forked from qt-creator/qt-creator
Terminal: Implement scroll keyboard shortcuts
Change-Id: I354e6f63f89893ca057d17fab9810ea5c3dece7d Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
@@ -647,6 +647,11 @@ void TerminalSurface::sendFocus(bool hasFocus)
|
||||
vterm_state_focus_out(vts);
|
||||
}
|
||||
|
||||
bool TerminalSurface::isInAltScreen()
|
||||
{
|
||||
return d->m_altscreen;
|
||||
}
|
||||
|
||||
void TerminalSurface::setWriteToPty(WriteToPty writeToPty)
|
||||
{
|
||||
d->m_writeToPty = writeToPty;
|
||||
|
@@ -105,6 +105,7 @@ public:
|
||||
void mouseButton(Qt::MouseButton button, bool pressed, Qt::KeyboardModifiers modifiers);
|
||||
|
||||
void sendFocus(bool hasFocus);
|
||||
bool isInAltScreen();
|
||||
signals:
|
||||
void invalidated(QRect grid);
|
||||
void fullSizeChanged(QSize newSize);
|
||||
|
@@ -950,7 +950,33 @@ void TerminalView::keyPressEvent(QKeyEvent *event)
|
||||
|
||||
event->accept();
|
||||
|
||||
if (d->m_surface->isInAltScreen()) {
|
||||
d->m_surface->sendKey(event);
|
||||
} else {
|
||||
switch (event->key()) {
|
||||
case Qt::Key_PageDown:
|
||||
verticalScrollBar()->setValue(qBound(
|
||||
0,
|
||||
verticalScrollBar()->value() + d->m_surface->liveSize().height(),
|
||||
verticalScrollBar()->maximum()));
|
||||
break;
|
||||
case Qt::Key_PageUp:
|
||||
verticalScrollBar()->setValue(qBound(
|
||||
0,
|
||||
verticalScrollBar()->value() - d->m_surface->liveSize().height(),
|
||||
verticalScrollBar()->maximum()));
|
||||
break;
|
||||
case Qt::Key_End:
|
||||
verticalScrollBar()->setValue(verticalScrollBar()->maximum());
|
||||
break;
|
||||
case Qt::Key_Home:
|
||||
verticalScrollBar()->setValue(0);
|
||||
break;
|
||||
default:
|
||||
d->m_surface->sendKey(event);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void TerminalView::keyReleaseEvent(QKeyEvent *event)
|
||||
|
@@ -42,7 +42,6 @@
|
||||
#include <QPixmapCache>
|
||||
#include <QRawFont>
|
||||
#include <QRegularExpression>
|
||||
#include <QScrollBar>
|
||||
#include <QTextItem>
|
||||
#include <QTextLayout>
|
||||
#include <QToolTip>
|
||||
|
Reference in New Issue
Block a user