1
0
mirror of https://github.com/MarlinFirmware/Marlin.git synced 2024-11-27 22:08:02 +00:00

Relocate click ignore code into info screen

This commit is contained in:
Scott Lahteine 2014-11-24 17:12:08 -08:00
parent cd769781a1
commit aa4160ba62

View File

@ -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