Skip to content

Commit

Permalink
fix(imgbtn): support LV_OBJ_FLAG_CHECKABLE
Browse files Browse the repository at this point in the history
fixes #4373
  • Loading branch information
kisvegabor committed Jul 14, 2023
1 parent 29ed7c5 commit 385d999
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/core/lv_obj.c
Expand Up @@ -728,9 +728,9 @@ static void lv_obj_event(const lv_obj_class_t * class_p, lv_event_t * e)
}
else if(code == LV_EVENT_RELEASED) {
lv_obj_clear_state(obj, LV_STATE_PRESSED);
void * param = lv_event_get_param(e);
lv_indev_t * indev = lv_event_get_indev(e);
/*Go the checked state if enabled*/
if(lv_indev_get_scroll_obj(param) == NULL && lv_obj_has_flag(obj, LV_OBJ_FLAG_CHECKABLE)) {
if(lv_indev_get_scroll_obj(indev) == NULL && lv_obj_has_flag(obj, LV_OBJ_FLAG_CHECKABLE)) {
if(!(lv_obj_get_state(obj) & LV_STATE_CHECKED)) lv_obj_add_state(obj, LV_STATE_CHECKED);
else lv_obj_clear_state(obj, LV_STATE_CHECKED);

Expand Down
8 changes: 8 additions & 0 deletions src/extra/widgets/imgbtn/lv_imgbtn.c
Expand Up @@ -205,6 +205,14 @@ static void lv_imgbtn_event(const lv_obj_class_t * class_p, lv_event_t * e)
p->x = LV_MAX(p->x, header.w);
}
}
/*Sent when the widget is checked due to LV_OBJ_FLAG_CHECKABLE */
else if(code == LV_EVENT_VALUE_CHANGED) {
if(lv_obj_has_state(obj, LV_STATE_CHECKED)) {
lv_imgbtn_set_state(obj, LV_IMGBTN_STATE_CHECKED_RELEASED);
} else {
lv_imgbtn_set_state(obj, LV_IMGBTN_STATE_RELEASED);
}
}
}

static void draw_main(lv_event_t * e)
Expand Down

0 comments on commit 385d999

Please sign in to comment.