diff --git a/radio/src/gui/colorlcd/LvglWrapper.cpp b/radio/src/gui/colorlcd/LvglWrapper.cpp index 053c894d7..d783f6048 100644 --- a/radio/src/gui/colorlcd/LvglWrapper.cpp +++ b/radio/src/gui/colorlcd/LvglWrapper.cpp @@ -246,11 +246,21 @@ static void rotaryDriverRead(lv_indev_drv_t *drv, lv_indev_data_t *data) if (diff != 0) { reset_inactivity(); + bool use_accel = false; + auto i = lv_indev_get_act(); + if (i) { + auto g = i->group; + if (g && lv_group_get_editing(g)) { + auto obj = lv_group_get_focused(g); + use_accel = obj && lv_obj_has_flag(obj, LV_OBJ_FLAG_ENCODER_ACCEL); + } + } + int8_t dir = 0; if (diff < 0) dir = -1; else if (diff > 0) dir = 1; - if (dir == prevDir) { + if (use_accel && (dir == prevDir)) { if (g_tmr10ms - lastEvent <= ROTENC_DELAY_HIGHSPEED) { // 160 ms // below ROTENC_DELAY_HIGHSPEED btw. events: accelerate accel += abs(diff); diff --git a/radio/src/thirdparty/libopenui b/radio/src/thirdparty/libopenui index 88128a21d..e3f6e2d12 160000 --- a/radio/src/thirdparty/libopenui +++ b/radio/src/thirdparty/libopenui @@ -1 +1 @@ -Subproject commit 88128a21d309e0a1aa5dfc6b082a7599552c875b +Subproject commit e3f6e2d12e007600e907a000816f546482fcb716