diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp
index 55247c15d56fbec7a157d4d722265e392a9be73a..f2768a8c178e5281908f26081eb3d853202af7c7 100755
--- a/Marlin/ultralcd.cpp
+++ b/Marlin/ultralcd.cpp
@@ -2361,6 +2361,7 @@ void kill_screen(const char* lcd_msg) {
void lcd_quick_feedback() {
lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW;
+ buttons = 0;
next_button_update_ms = millis() + 500;
// Buzz and wait. The delay is needed for buttons to settle!
@@ -2850,20 +2851,26 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; }
* Warning: This function is called from interrupt context!
*/
void lcd_buttons_update() {
- #if ENABLED(NEWPANEL)
- uint8_t newbutton = 0;
- #if BUTTON_EXISTS(EN1)
- if (BUTTON_PRESSED(EN1)) newbutton |= EN_A;
- #endif
- #if BUTTON_EXISTS(EN2)
- if (BUTTON_PRESSED(EN2)) newbutton |= EN_B;
- #endif
- #if LCD_HAS_DIRECTIONAL_BUTTONS || BUTTON_EXISTS(ENC)
- millis_t now = millis();
- #endif
+ millis_t now = millis();
+ if (ELAPSED(now, next_button_update_ms)) {
+
+ #if ENABLED(NEWPANEL)
+ uint8_t newbutton = 0;
+
+ #if BUTTON_EXISTS(EN1)
+ if (BUTTON_PRESSED(EN1)) newbutton |= EN_A;
+ #endif
+
+ #if BUTTON_EXISTS(EN2)
+ if (BUTTON_PRESSED(EN2)) newbutton |= EN_B;
+ #endif
+
+ #if BUTTON_EXISTS(ENC)
+ if (BUTTON_PRESSED(ENC)) newbutton |= EN_C;
+ #endif
+
+ #if LCD_HAS_DIRECTIONAL_BUTTONS
- #if LCD_HAS_DIRECTIONAL_BUTTONS
- if (ELAPSED(now, next_button_update_ms)) {
if (false) {
// for the else-ifs below
}
@@ -2891,23 +2898,21 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; }
next_button_update_ms = now + 300;
}
#endif
- }
- #endif
- #if BUTTON_EXISTS(ENC)
- if (ELAPSED(now, next_button_update_ms) && BUTTON_PRESSED(ENC)) newbutton |= EN_C;
- #endif
+ #endif // LCD_HAS_DIRECTIONAL_BUTTONS
- buttons = newbutton;
- #if ENABLED(LCD_HAS_SLOW_BUTTONS)
- buttons |= slow_buttons;
- #endif
- #if ENABLED(REPRAPWORLD_KEYPAD)
- GET_BUTTON_STATES(buttons_reprapworld_keypad);
- #endif
- #else
- GET_BUTTON_STATES(buttons);
- #endif //!NEWPANEL
+ buttons = newbutton;
+ #if ENABLED(LCD_HAS_SLOW_BUTTONS)
+ buttons |= slow_buttons;
+ #endif
+ #if ENABLED(REPRAPWORLD_KEYPAD)
+ GET_BUTTON_STATES(buttons_reprapworld_keypad);
+ #endif
+ #else
+ GET_BUTTON_STATES(buttons);
+ #endif //!NEWPANEL
+
+ } // next_button_update_ms
// Manage encoder rotation
#if ENABLED(REVERSE_MENU_DIRECTION) && ENABLED(REVERSE_ENCODER_DIRECTION)