Relocate click ignore code into info screen
This commit is contained in:
parent
cd769781a1
commit
aa4160ba62
1 changed files with 22 additions and 21 deletions
|
@ -163,6 +163,7 @@ menuFunc_t currentMenu = lcd_status_screen; /* function pointer to the currently
|
||||||
uint32_t lcd_next_update_millis;
|
uint32_t lcd_next_update_millis;
|
||||||
uint8_t lcd_status_update_delay;
|
uint8_t lcd_status_update_delay;
|
||||||
bool ignore_click = false;
|
bool ignore_click = false;
|
||||||
|
bool wait_for_unclick;
|
||||||
uint8_t lcdDrawUpdate = 2; /* Set to none-zero when the LCD needs to draw, decreased after every draw. Set to 2 in LCD routines so the LCD gets at least 1 full redraw (first redraw is partial) */
|
uint8_t lcdDrawUpdate = 2; /* Set to none-zero when the LCD needs to draw, decreased after every draw. Set to 2 in LCD routines so the LCD gets at least 1 full redraw (first redraw is partial) */
|
||||||
|
|
||||||
//prevMenu and prevEncoderPosition are used to store the previous menu location when editing settings.
|
//prevMenu and prevEncoderPosition are used to store the previous menu location when editing settings.
|
||||||
|
@ -191,7 +192,25 @@ static void lcd_status_screen()
|
||||||
}
|
}
|
||||||
#ifdef ULTIPANEL
|
#ifdef ULTIPANEL
|
||||||
|
|
||||||
if (lcd_clicked())
|
bool current_click = LCD_CLICKED;
|
||||||
|
|
||||||
|
if (ignore_click) {
|
||||||
|
if (wait_for_unclick) {
|
||||||
|
if (!current_click) {
|
||||||
|
ignore_click = wait_for_unclick = false;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
current_click = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (current_click) {
|
||||||
|
lcd_quick_feedback();
|
||||||
|
wait_for_unclick = true;
|
||||||
|
current_click = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (current_click)
|
||||||
{
|
{
|
||||||
currentMenu = lcd_main_menu;
|
currentMenu = lcd_main_menu;
|
||||||
encoderPosition = 0;
|
encoderPosition = 0;
|
||||||
|
@ -1294,6 +1313,7 @@ void lcd_update()
|
||||||
void lcd_ignore_click(bool b)
|
void lcd_ignore_click(bool b)
|
||||||
{
|
{
|
||||||
ignore_click = b;
|
ignore_click = b;
|
||||||
|
wait_for_unclick = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcd_setstatus(const char* message)
|
void lcd_setstatus(const char* message)
|
||||||
|
@ -1425,26 +1445,7 @@ void lcd_buzz(long duration, uint16_t freq)
|
||||||
|
|
||||||
bool lcd_clicked()
|
bool lcd_clicked()
|
||||||
{
|
{
|
||||||
static bool wait_for_unclick = false;
|
return LCD_CLICKED;
|
||||||
bool current_click = LCD_CLICKED;
|
|
||||||
|
|
||||||
if (ignore_click) {
|
|
||||||
if (wait_for_unclick) {
|
|
||||||
if (!current_click) {
|
|
||||||
ignore_click = wait_for_unclick = false;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
current_click = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (current_click) {
|
|
||||||
wait_for_unclick = true;
|
|
||||||
current_click = false;
|
|
||||||
lcd_quick_feedback();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return current_click;
|
|
||||||
}
|
}
|
||||||
#endif//ULTIPANEL
|
#endif//ULTIPANEL
|
||||||
|
|
||||||
|
|
Reference in a new issue