Revert ADC_KEYPAD direction behavior (#12508)
This commit is contained in:
parent
d29cb09b3e
commit
fd2998efd5
4 changed files with 22 additions and 9 deletions
|
@ -47,6 +47,7 @@
|
||||||
#define ULTIPANEL
|
#define ULTIPANEL
|
||||||
|
|
||||||
// this helps to implement ADC_KEYPAD menus
|
// this helps to implement ADC_KEYPAD menus
|
||||||
|
#define REVERSE_MENU_DIRECTION
|
||||||
#define ENCODER_PULSES_PER_STEP 1
|
#define ENCODER_PULSES_PER_STEP 1
|
||||||
#define ENCODER_STEPS_PER_MENU_ITEM 1
|
#define ENCODER_STEPS_PER_MENU_ITEM 1
|
||||||
#define ENCODER_FEEDRATE_DEADZONE 2
|
#define ENCODER_FEEDRATE_DEADZONE 2
|
||||||
|
|
|
@ -55,6 +55,7 @@ static void lcd_factory_settings() {
|
||||||
#include "../lcdprint.h"
|
#include "../lcdprint.h"
|
||||||
|
|
||||||
static void progress_bar_test() {
|
static void progress_bar_test() {
|
||||||
|
ui.encoder_direction_normal();
|
||||||
static int8_t bar_percent = 0;
|
static int8_t bar_percent = 0;
|
||||||
if (ui.use_click()) {
|
if (ui.use_click()) {
|
||||||
ui.goto_previous_screen();
|
ui.goto_previous_screen();
|
||||||
|
|
|
@ -305,18 +305,26 @@ bool MarlinUI::get_blink() {
|
||||||
if (keypad_buttons) {
|
if (keypad_buttons) {
|
||||||
#if HAS_ENCODER_ACTION
|
#if HAS_ENCODER_ACTION
|
||||||
refresh(LCDVIEW_REDRAW_NOW);
|
refresh(LCDVIEW_REDRAW_NOW);
|
||||||
if (encoderDirection == -1) { // side effect which signals we are inside a menu
|
#if HAS_LCD_MENU
|
||||||
#if HAS_LCD_MENU
|
if (encoderDirection == -1) { // ADC_KEYPAD forces REVERSE_MENU_DIRECTION, so this indicates menu navigation
|
||||||
if (RRK(EN_KEYPAD_DOWN)) encoderPosition += ENCODER_STEPS_PER_MENU_ITEM;
|
if (RRK(EN_KEYPAD_UP)) encoderPosition += ENCODER_STEPS_PER_MENU_ITEM;
|
||||||
else if (RRK(EN_KEYPAD_UP)) encoderPosition -= ENCODER_STEPS_PER_MENU_ITEM;
|
else if (RRK(EN_KEYPAD_DOWN)) encoderPosition -= ENCODER_STEPS_PER_MENU_ITEM;
|
||||||
else if (RRK(EN_KEYPAD_LEFT)) { MenuItem_back::action(); quick_feedback(); }
|
else if (RRK(EN_KEYPAD_LEFT)) { MenuItem_back::action(); quick_feedback(); }
|
||||||
else if (RRK(EN_KEYPAD_RIGHT)) { return_to_status(); quick_feedback(); }
|
else if (RRK(EN_KEYPAD_RIGHT)) { return_to_status(); quick_feedback(); }
|
||||||
|
}
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
#if HAS_LCD_MENU
|
||||||
|
if (RRK(EN_KEYPAD_UP)) encoderPosition -= ENCODER_PULSES_PER_STEP;
|
||||||
|
else if (RRK(EN_KEYPAD_DOWN)) encoderPosition += ENCODER_PULSES_PER_STEP;
|
||||||
|
else if (RRK(EN_KEYPAD_LEFT)) { MenuItem_back::action(); quick_feedback(); }
|
||||||
|
else if (RRK(EN_KEYPAD_RIGHT)) encoderPosition = 0;
|
||||||
|
#else
|
||||||
|
if (RRK(EN_KEYPAD_UP) || RRK(EN_KEYPAD_LEFT)) encoderPosition -= ENCODER_PULSES_PER_STEP;
|
||||||
|
else if (RRK(EN_KEYPAD_DOWN) || RRK(EN_KEYPAD_RIGHT)) encoderPosition += ENCODER_PULSES_PER_STEP;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else if (RRK(EN_KEYPAD_DOWN)) encoderPosition -= ENCODER_PULSES_PER_STEP;
|
|
||||||
else if (RRK(EN_KEYPAD_UP)) encoderPosition += ENCODER_PULSES_PER_STEP;
|
|
||||||
else if (RRK(EN_KEYPAD_LEFT)) { MenuItem_back::action(); quick_feedback(); }
|
|
||||||
else if (RRK(EN_KEYPAD_RIGHT)) encoderPosition = 0;
|
|
||||||
#endif
|
#endif
|
||||||
next_button_update_ms = millis() + ADC_MIN_KEY_DELAY;
|
next_button_update_ms = millis() + ADC_MIN_KEY_DELAY;
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -188,7 +188,10 @@
|
||||||
#define B_DW (_BV(BL_DW))
|
#define B_DW (_BV(BL_DW))
|
||||||
#define B_RI (_BV(BL_RI))
|
#define B_RI (_BV(BL_RI))
|
||||||
#define B_ST (_BV(BL_ST))
|
#define B_ST (_BV(BL_ST))
|
||||||
#define BUTTON_CLICK() (buttons & (B_MI|B_ST))
|
|
||||||
|
#ifndef BUTTON_CLICK
|
||||||
|
#define BUTTON_CLICK() (buttons & (B_MI|B_ST))
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Reference in a new issue