X-Git-Url: https://git.piment-noir.org/?p=deb_libcec.git;a=blobdiff_plain;f=src%2Flib%2FCECClient.cpp;h=85df46d376859c9c24575abb175b110202af7a90;hp=4db7fcd50f1476eb2caf9df8e77966253f808cc7;hb=cd600c59f7a642a64e01603fadf9743940672b4d;hpb=dad75c6cfa3c1a1c12eeca10190f14831c435325 diff --git a/src/lib/CECClient.cpp b/src/lib/CECClient.cpp index 4db7fcd..85df46d 100644 --- a/src/lib/CECClient.cpp +++ b/src/lib/CECClient.cpp @@ -973,10 +973,10 @@ void CCECClient::AddKey(bool bSendComboKey /* = false */) { key.duration = (unsigned int) (GetTimeMs() - m_buttontime); - cec_user_control_code comboKey(m_configuration.comboKey); - uint32_t iTimeoutMs(m_configuration.iComboKeyTimeoutMs); - - if (key.duration > iTimeoutMs || m_iCurrentButton != comboKey || bSendComboKey) + if (key.duration > m_configuration.iComboKeyTimeoutMs || + m_configuration.iComboKeyTimeoutMs == 0 || + m_iCurrentButton != m_configuration.comboKey || + bSendComboKey) { key.keycode = m_iCurrentButton; @@ -1009,7 +1009,7 @@ void CCECClient::AddKey(const cec_keypress &key) { CLockObject lock(m_mutex); - if (m_iCurrentButton == comboKey && key.duration == 0) + if (m_configuration.iComboKeyTimeoutMs > 0 && m_iCurrentButton == comboKey && key.duration == 0) { // stop + ok -> exit if (key.keycode == CEC_USER_CONTROL_CODE_SELECT) @@ -1070,7 +1070,7 @@ void CCECClient::CheckKeypressTimeout(void) m_configuration.iComboKeyTimeoutMs : CEC_DEFAULT_COMBO_TIMEOUT_MS); if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && - ((m_iCurrentButton == comboKey && iNow - m_buttontime > iTimeoutMs) || + ((m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_buttontime > iTimeoutMs) || (m_iCurrentButton != comboKey && iNow - m_buttontime > CEC_BUTTON_TIMEOUT))) { key.duration = (unsigned int) (iNow - m_buttontime);