diff --git a/src/widgets/roller/lv_roller.c b/src/widgets/roller/lv_roller.c index 2e36470cbb..e9d6e42dd2 100644 --- a/src/widgets/roller/lv_roller.c +++ b/src/widgets/roller/lv_roller.c @@ -334,7 +334,7 @@ static void lv_roller_event(const lv_obj_class_t * class_p, lv_event_t * e) if(res != LV_RESULT_OK) return; const lv_event_code_t code = lv_event_get_code(e); - lv_obj_t * obj = lv_event_get_target(e); + lv_obj_t * obj = lv_event_get_current_target(e); lv_roller_t * roller = (lv_roller_t *)obj; if(code == LV_EVENT_GET_SELF_SIZE) { diff --git a/tests/src/test_cases/widgets/test_roller.c b/tests/src/test_cases/widgets/test_roller.c index a84afc08e1..3fa6130ebd 100644 --- a/tests/src/test_cases/widgets/test_roller.c +++ b/tests/src/test_cases/widgets/test_roller.c @@ -161,6 +161,14 @@ void test_roller_keypad_events(void) TEST_ASSERT_EQUAL(expected_index, actual_index); } +void test_roller_with_overlay_and_bubble_events_enabled(void) +{ + lv_obj_t * overlay = lv_obj_create(roller); + lv_obj_add_flag(overlay, LV_OBJ_FLAG_EVENT_BUBBLE); + + lv_obj_send_event(overlay, LV_EVENT_PRESSED, NULL); +} + //void test_roller_infinite_mode_first_option_gets_selected_after_last_option(void) //{ // char actual_str[OPTION_BUFFER_SZ] = {0x00};