diff --git a/src/lv_objx/lv_btnm.c b/src/lv_objx/lv_btnm.c index 179213a60..8421d1197 100644 --- a/src/lv_objx/lv_btnm.c +++ b/src/lv_objx/lv_btnm.c @@ -855,6 +855,12 @@ static lv_res_t lv_btnm_signal(lv_obj_t * btnm, lv_signal_t sign, void * param) #if LV_USE_GROUP lv_indev_t * indev = lv_indev_get_act(); lv_indev_type_t indev_type = lv_indev_get_type(indev); + + /*If not focused by an input device assume the last input device*/ + if(indev_type == LV_INDEV_TYPE_NONE) { + indev_type = lv_indev_get_type(lv_indev_get_next(NULL)); + } + if(indev_type == LV_INDEV_TYPE_POINTER) { /*Select the clicked button*/ lv_point_t p1; diff --git a/src/lv_objx/lv_tabview.c b/src/lv_objx/lv_tabview.c index 3bd684d0a..19924b19b 100644 --- a/src/lv_objx/lv_tabview.c +++ b/src/lv_objx/lv_tabview.c @@ -750,9 +750,12 @@ static lv_res_t lv_tabview_signal(lv_obj_t * tabview, lv_signal_t sign, void * p } if(sign == LV_SIGNAL_FOCUS) { - - lv_indev_type_t indev_type = lv_indev_get_type(lv_indev_get_act()); + /*If not focused by an input device assume the last input device*/ + if(indev_type == LV_INDEV_TYPE_NONE) { + indev_type = lv_indev_get_type(lv_indev_get_next(NULL)); + } + /*With ENCODER select the first button only in edit mode*/ if(indev_type == LV_INDEV_TYPE_ENCODER) { #if LV_USE_GROUP