diff --git a/src/gui/qt/PhoneLineManagerImpl.cpp b/src/gui/qt/PhoneLineManagerImpl.cpp index c51f227a27ef3662eab8251ded70eb56f18a1c49..bc14254a285f70b7fb137cae55a7d5a64a517f85 100644 --- a/src/gui/qt/PhoneLineManagerImpl.cpp +++ b/src/gui/qt/PhoneLineManagerImpl.cpp @@ -511,6 +511,11 @@ PhoneLineManagerImpl::sendKey(Qt::Key c) case Qt::Key_F6: selectLine(c - Qt::Key_F1); break; + + case Qt::Key_Escape: + if (selectedLine) { + selectedLine->hangup(true); + } default: if (!selectedLine) { diff --git a/src/gui/qt/SFLPhoneWindow.cpp b/src/gui/qt/SFLPhoneWindow.cpp index e6e17fa8f5328a280e7b9d446299ed23018c0147..0903e7846b186b677b2172d62c2bc259d2c008a4 100644 --- a/src/gui/qt/SFLPhoneWindow.cpp +++ b/src/gui/qt/SFLPhoneWindow.cpp @@ -167,11 +167,16 @@ void SFLPhoneWindow::initWindowButtons() void SFLPhoneWindow::keyPressEvent(QKeyEvent *e) { - // Misc. key - if (e->state() & Qt::ControlButton || e->key() == Qt::Key_Control) { + // Misc. key + int key = e->key(); + if (e->state() & Qt::ControlButton || key == Qt::Key_Control) { emit shortcutPressed(e); - } else if (e->key() != Qt::Key_Shift) { - emit keyPressed(Qt::Key(e->key())); + } else if (key != Qt::Key_Shift && + key != Qt::Key_Meta && + key != Qt::Key_Alt && + key != Qt::Key_Mode_switch + ) { + emit keyPressed(Qt::Key(key)); } }