Touch Buttons variable repeat delay (#15236)
This commit is contained in:
parent
5bf635cec2
commit
3f129b6574
@ -143,6 +143,9 @@ void MenuItem_gcode::action(PGM_P const pgcode) { queue.inject_P(pgcode); }
|
||||
* MenuItem_int3::action_edit(PSTR(MSG_SPEED), &feedrate_percentage, 10, 999)
|
||||
*/
|
||||
void MenuItemBase::edit(strfunc_t strfunc, loadfunc_t loadfunc) {
|
||||
#if ENABLED(TOUCH_BUTTONS)
|
||||
ui.repeat_delay = 50;
|
||||
#endif
|
||||
if (int16_t(ui.encoderPosition) < 0) ui.encoderPosition = 0;
|
||||
if (int16_t(ui.encoderPosition) > maxEditValue) ui.encoderPosition = maxEditValue;
|
||||
if (ui.should_draw())
|
||||
@ -212,6 +215,10 @@ bool printer_busy() {
|
||||
void MarlinUI::goto_screen(screenFunc_t screen, const uint16_t encoder/*=0*/, const uint8_t top/*=0*/, const uint8_t items/*=0*/) {
|
||||
if (currentScreen != screen) {
|
||||
|
||||
#if ENABLED(TOUCH_BUTTONS)
|
||||
repeat_delay = 250;
|
||||
#endif
|
||||
|
||||
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
||||
// Shadow for editing the fade height
|
||||
lcd_z_fade_height = planner.z_fade_height;
|
||||
|
@ -195,6 +195,10 @@ millis_t MarlinUI::next_button_update_ms; // = 0
|
||||
int8_t MarlinUI::encoderDirection = ENCODERBASE;
|
||||
#endif
|
||||
|
||||
#if ENABLED(TOUCH_BUTTONS)
|
||||
uint8_t MarlinUI::repeat_delay;
|
||||
#endif
|
||||
|
||||
bool MarlinUI::lcd_clicked;
|
||||
float move_menu_scale;
|
||||
|
||||
@ -792,7 +796,7 @@ void MarlinUI::update() {
|
||||
if (touch_buttons & (EN_A | EN_B)) { // A and/or B button?
|
||||
encoderDiff = (ENCODER_STEPS_PER_MENU_ITEM) * (ENCODER_PULSES_PER_STEP) * encoderDirection;
|
||||
if (touch_buttons & EN_A) encoderDiff *= -1;
|
||||
next_button_update_ms = ms + 50; // Assume the repeat delay
|
||||
next_button_update_ms = ms + repeat_delay; // Assume the repeat delay
|
||||
if (!wait_for_unclick && !arrow_pressed) { // On click prepare for repeat
|
||||
next_button_update_ms += 250; // Longer delay on first press
|
||||
arrow_pressed = true; // Mark arrow as pressed
|
||||
|
@ -406,6 +406,10 @@ public:
|
||||
|
||||
#if HAS_LCD_MENU
|
||||
|
||||
#if ENABLED(TOUCH_BUTTONS)
|
||||
static uint8_t repeat_delay;
|
||||
#endif
|
||||
|
||||
#if ENABLED(ENCODER_RATE_MULTIPLIER)
|
||||
static bool encoderRateMultiplierEnabled;
|
||||
static millis_t lastEncoderMovementMillis;
|
||||
|
Loading…
Reference in New Issue
Block a user