diff --git a/src/interface.cpp b/src/interface.cpp index 09e673b831178346ffd11fec6a5d6327ebcb08f9..862c2f1769a1c2f46b9b6b51afa43d6b7365956a 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -750,9 +750,12 @@ void MainWindow::play_snake() on_pushButton_clicked(); // reset la grille + QWidget::grabKeyboard(); + static auto restore = [&] { ui_update_alphabet(simulation.getAlphabet()); + QWidget::releaseKeyboard(); snake_timer.stop(); on_pushButton_clicked(); // reset la grille }; @@ -889,26 +892,26 @@ void MainWindow::closeEvent(QCloseEvent *e) void MainWindow::keyPressEvent(QKeyEvent *event) { - if (event->key() == Qt::Key_Q) + if (event->key() == Qt::Key_Q || event->key() == Qt::Key_Left) m_arrow_key_state[0] = true; - if (event->key() == Qt::Key_S) + if (event->key() == Qt::Key_S || event->key() == Qt::Key_Down) m_arrow_key_state[1] = true; - if (event->key() == Qt::Key_D) + if (event->key() == Qt::Key_D || event->key() == Qt::Key_Right) m_arrow_key_state[2] = true; - if (event->key() == Qt::Key_Z) + if (event->key() == Qt::Key_Z || event->key() == Qt::Key_Up) m_arrow_key_state[3] = true; QMainWindow::keyPressEvent(event); } void MainWindow::keyReleaseEvent(QKeyEvent *event) { - if (event->key() == Qt::Key_Q) + if (event->key() == Qt::Key_Q || event->key() == Qt::Key_Left) m_arrow_key_state[0] = false; - if (event->key() == Qt::Key_S) + if (event->key() == Qt::Key_S || event->key() == Qt::Key_Down) m_arrow_key_state[1] = false; - if (event->key() == Qt::Key_D) + if (event->key() == Qt::Key_D || event->key() == Qt::Key_Right) m_arrow_key_state[2] = false; - if (event->key() == Qt::Key_Z) + if (event->key() == Qt::Key_Z || event->key() == Qt::Key_Up) m_arrow_key_state[3] = false; QMainWindow::keyReleaseEvent(event); }