Merge pull request #3191 from wavexx/fix_longpress_isr
Handle Long-Press in the main loop
This commit is contained in:
commit
f36b9173da
@ -9928,6 +9928,18 @@ if(0)
|
||||
#endif
|
||||
check_axes_activity();
|
||||
mmu_loop();
|
||||
|
||||
// handle longpress
|
||||
if(lcd_longpress_trigger)
|
||||
{
|
||||
// long press is not possible in modal mode, wait until ready
|
||||
if (lcd_longpress_func && lcd_update_enabled)
|
||||
{
|
||||
lcd_longpress_func();
|
||||
lcd_longpress_trigger = 0;
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(AUTO_REPORT)
|
||||
host_autoreport();
|
||||
#endif //AUTO_REPORT
|
||||
|
@ -728,6 +728,10 @@ void lcd_update_enable(uint8_t enabled)
|
||||
}
|
||||
}
|
||||
|
||||
bool lcd_longpress_trigger = 0;
|
||||
|
||||
// WARNING: this function is called from the temperature ISR.
|
||||
// Only update flags, but do not perform any menu/lcd operation!
|
||||
void lcd_buttons_update(void)
|
||||
{
|
||||
static uint8_t lcd_long_press_active = 0;
|
||||
@ -749,9 +753,7 @@ void lcd_buttons_update(void)
|
||||
else if (longPressTimer.expired(LONG_PRESS_TIME))
|
||||
{
|
||||
lcd_long_press_active = 1;
|
||||
//long press is not possible in modal mode
|
||||
if (lcd_longpress_func && lcd_update_enabled)
|
||||
lcd_longpress_func();
|
||||
lcd_longpress_trigger = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -110,6 +110,7 @@ extern uint32_t lcd_next_update_millis;
|
||||
extern uint8_t lcd_status_update_delay;
|
||||
|
||||
extern lcd_longpress_func_t lcd_longpress_func;
|
||||
extern bool lcd_longpress_trigger;
|
||||
|
||||
extern lcd_charsetup_func_t lcd_charsetup_func;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user