X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2FCECClient.cpp;h=0bbc081191652ba7b65a80bb88bd2070d5358e40;hb=21fa005bec345a6b80229c1218e04fb59a17ccdb;hp=c9525af15ace48fd132a3c78771d65873fdf79ee;hpb=d2f9b488f5c2d8450b2f87082f9aef984670a747;p=deb_libcec.git diff --git a/src/lib/CECClient.cpp b/src/lib/CECClient.cpp index c9525af..0bbc081 100644 --- a/src/lib/CECClient.cpp +++ b/src/lib/CECClient.cpp @@ -972,9 +972,14 @@ void CCECClient::AddKey(void) void CCECClient::AddKey(const cec_keypress &key) { + // send back the previous key if there is one + AddKey(); + { CLockObject lock(m_mutex); - m_iCurrentButton = key.duration > 0 ? CEC_USER_CONTROL_CODE_UNKNOWN : key.keycode; + m_iCurrentButton = key.duration > 0 || key.keycode > CEC_USER_CONTROL_CODE_MAX ? + CEC_USER_CONTROL_CODE_UNKNOWN : + key.keycode; m_buttontime = key.duration > 0 ? 0 : GetTimeMs(); }