2
0
mirror of https://github.com/telegramdesktop/tdesktop synced 2025-09-03 07:56:03 +00:00

Add keyboard navigation to top peers.

This commit is contained in:
John Preston
2024-04-11 13:55:38 +04:00
parent a6c1def6fe
commit e1c21b908c
5 changed files with 162 additions and 7 deletions

View File

@@ -1720,7 +1720,10 @@ void Widget::escape() {
}
void Widget::submit() {
if (_inner->chooseRow()) {
if (_suggestions) {
_suggestions->chooseRow();
return;
} else if (_inner->chooseRow()) {
return;
}
const auto state = _inner->state();
@@ -3142,13 +3145,34 @@ void Widget::keyPressEvent(QKeyEvent *e) {
} else if (e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter) {
submit();
} else if (e->key() == Qt::Key_Down) {
_inner->selectSkip(1);
if (_suggestions) {
_suggestions->selectSkip(1);
} else {
_inner->selectSkip(1);
}
} else if (e->key() == Qt::Key_Up) {
if (_suggestions) {
_suggestions->selectSkip(-1);
} else {
_inner->selectSkip(-1);
}
_inner->selectSkip(-1);
} else if (e->key() == Qt::Key_Left && _suggestions) {
_suggestions->selectLeft();
} else if (e->key() == Qt::Key_Right && _suggestions) {
_suggestions->selectRight();
} else if (e->key() == Qt::Key_PageDown) {
_inner->selectSkipPage(_scroll->height(), 1);
if (_suggestions) {
_suggestions->selectSkipPage(_scroll->height(), 1);
} else {
_inner->selectSkipPage(_scroll->height(), 1);
}
} else if (e->key() == Qt::Key_PageUp) {
_inner->selectSkipPage(_scroll->height(), -1);
if (_suggestions) {
_suggestions->selectSkipPage(_scroll->height(), -1);
} else {
_inner->selectSkipPage(_scroll->height(), -1);
}
} else if (!(e->modifiers() & ~Qt::ShiftModifier)
&& e->key() != Qt::Key_Shift
&& !_openedFolder