Double click triggered by release instead of keypress

pull/274/head
Stephen Brown 3 years ago
parent ef92fd9398
commit 96ad7ecede
  1. 15
      src/uibuttons.cpp

@ -97,7 +97,7 @@ CUIButton::BtnTrigger CUIButton::ReadTrigger (void)
unsigned value = m_pin->Read(); unsigned value = m_pin->Read();
// TODO: handle long press // TODO: long press time from config
if (m_timer < LONG_PRESS_TIME) { if (m_timer < LONG_PRESS_TIME) {
m_timer++; m_timer++;
@ -147,11 +147,6 @@ CUIButton::BtnTrigger CUIButton::ReadTrigger (void)
if (m_numClicks < 2) { if (m_numClicks < 2) {
m_numClicks++; m_numClicks++;
} }
if (m_numClicks == 2) {
reset();
LOGDBG ("Double Click");
return BtnTriggerDoubleClick;
}
} }
} }
else else
@ -160,7 +155,7 @@ CUIButton::BtnTrigger CUIButton::ReadTrigger (void)
// 1 -> 1 : Button is not pressed, was already not pressed // 1 -> 1 : Button is not pressed, was already not pressed
} }
else { else {
// 0 -> 1 : Button was pressed but is now not pressed // 0 -> 1 : Button was pressed but is now not pressed (it was released)
m_lastValue = 1; m_lastValue = 1;
m_debounceTimer = 0; m_debounceTimer = 0;
LOGDBG ("Up"); LOGDBG ("Up");
@ -178,6 +173,12 @@ CUIButton::BtnTrigger CUIButton::ReadTrigger (void)
LOGDBG ("Click"); LOGDBG ("Click");
return BtnTriggerClick; return BtnTriggerClick;
} }
else if (m_numClicks == 2) {
// This is the second release in a short period of time
reset();
LOGDBG ("Double Click");
return BtnTriggerDoubleClick;
}
} }
} }

Loading…
Cancel
Save