diff --git a/src/gui/official/PhoneLine.cpp b/src/gui/official/PhoneLine.cpp index 6a5ec07a5c52ac3a4d4ebd1e0ee1be3ec66d3885..56d2a7c0315acf323cebeec8b5b98f781fd0bece 100644 --- a/src/gui/official/PhoneLine.cpp +++ b/src/gui/official/PhoneLine.cpp @@ -106,12 +106,14 @@ PhoneLine::sendKey(Qt::Key c) break; default: - if(!mCall) { - mSession.playDtmf(c); - mBuffer += QString(c).toStdString(); - } - else { - mCall->sendDtmf(c); + if (QChar(c).isDigit()) { + if(!mCall) { + mSession.playDtmf(c); + mBuffer += QString(c).toStdString(); + } + else { + mCall->sendDtmf(c); + } } } } diff --git a/src/gui/official/PhoneLineManagerImpl.cpp b/src/gui/official/PhoneLineManagerImpl.cpp index 9ab7fe04af8eea59ead7b1080bb2c9926b2b1f5c..b1eb6cffdff1c527ee56fc5b034f304790936b89 100644 --- a/src/gui/official/PhoneLineManagerImpl.cpp +++ b/src/gui/official/PhoneLineManagerImpl.cpp @@ -41,13 +41,16 @@ PhoneLineManagerImpl::getNextAvailableLine() PhoneLine *selectedLine = NULL; QMutexLocker guard(&mPhoneLinesMutex); - QMutexLocker guard2(&mCurrentLineMutex); + mCurrentLineMutex.lock(); + PhoneLine *current = mCurrentLine; + mCurrentLineMutex.unlock(); + unsigned int i = 0; while(i < mPhoneLines.size() && !selectedLine) { mPhoneLines[i]->lock(); if(mPhoneLines[i]->isAvailable() && - mPhoneLines[i] != mCurrentLine) { + mPhoneLines[i] != current) { selectedLine = mPhoneLines[i]; } else { @@ -75,11 +78,9 @@ PhoneLineManagerImpl::selectNextAvailableLine() mCurrentLine = selectedLine; // select current line. - { - PhoneLineLocker guard(mCurrentLine); - mCurrentLine->select(); - } - + // We don't need to lock it, since it is + // done at the top. + selectedLine->select(); } return selectedLine; diff --git a/src/gui/official/sflphone.pro b/src/gui/official/sflphone.pro index 07ca2614f18b17ced79fddd05ce46114e9b42c3f..b66df84ce5d7d2d4f1b911302f43c0dc01ec8b51 100644 --- a/src/gui/official/sflphone.pro +++ b/src/gui/official/sflphone.pro @@ -6,7 +6,7 @@ TEMPLATE = app TARGET += DEPENDPATH += . INCLUDEPATH += . -#CONFIG += debug +CONFIG += debug # Input HEADERS += Account.hpp \