Core: fix direction of Ctrl+N/P/Up/Down

Additionally accept the shortcut override events in order to block other
potential shortcuts from interfering with the selection of the open
document.

amends e6299f510d
amends 03e35aac14

Task-number: QTCREATORBUG-31072
Change-Id: Idfd65b92a84f5be39f9a01da68e8046ae5304733
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
David Schulz
2024-06-24 14:24:02 +02:00
parent 64a9da8114
commit 4f1cc1ff31

View File

@@ -165,34 +165,35 @@ bool OpenEditorsWindow::eventFilter(QObject *obj, QEvent *e)
auto ke = static_cast<QKeyEvent*>(e); auto ke = static_cast<QKeyEvent*>(e);
switch (ke->key()) { switch (ke->key()) {
case Qt::Key_Up: case Qt::Key_Up:
selectPreviousEditor(); case Qt::Key_P:
e->accept();
return true; return true;
case Qt::Key_Down: case Qt::Key_Down:
selectNextEditor();
return true;
case Qt::Key_P:
case Qt::Key_N: case Qt::Key_N:
if (ke->modifiers() == Qt::KeyboardModifiers(HostOsInfo::controlModifier())) { e->accept();
if (ke->key() == Qt::Key_P) return true;
selectPreviousEditor();
else
selectNextEditor();
return true;
}
break;
} }
} }
if (e->type() == QEvent::KeyPress) { if (e->type() == QEvent::KeyPress) {
auto ke = static_cast<QKeyEvent*>(e); auto ke = static_cast<QKeyEvent*>(e);
if (ke->key() == Qt::Key_Escape) { switch (ke->key()) {
case Qt::Key_Up:
case Qt::Key_P:
selectNextEditor();
return true;
case Qt::Key_Down:
case Qt::Key_N:
selectPreviousEditor();
return true;
case Qt::Key_Escape:
setVisible(false); setVisible(false);
return true; return true;
} case Qt::Key_Return:
if (ke->key() == Qt::Key_Return case Qt::Key_Enter:
|| ke->key() == Qt::Key_Enter) {
selectEditor(m_editorView->currentItem()); selectEditor(m_editorView->currentItem());
return true; return true;
} }
} else if (e->type() == QEvent::KeyRelease) { } else if (e->type() == QEvent::KeyRelease) {
auto ke = static_cast<QKeyEvent*>(e); auto ke = static_cast<QKeyEvent*>(e);
if (ke->modifiers() == 0 if (ke->modifiers() == 0