diff --git a/src/lv_core/lv_obj.c b/src/lv_core/lv_obj.c index 65a223796..c84ee346d 100644 --- a/src/lv_core/lv_obj.c +++ b/src/lv_core/lv_obj.c @@ -1504,6 +1504,10 @@ lv_res_t lv_event_send(lv_obj_t * obj, lv_event_t event, const void * data) */ lv_res_t lv_event_send_func(lv_event_cb_t event_xcb, lv_obj_t * obj, lv_event_t event, const void * data) { + if(obj != NULL) { + LV_ASSERT_OBJ(obj, LV_OBJX_NAME); + } + /* Build a simple linked list from the objects used in the events * It's important to know if an this object was deleted by a nested event * called from this `even_cb`. */ diff --git a/src/lv_objx/lv_btnm.c b/src/lv_objx/lv_btnm.c index e783a1045..26d13504d 100644 --- a/src/lv_objx/lv_btnm.c +++ b/src/lv_objx/lv_btnm.c @@ -864,9 +864,10 @@ static lv_res_t lv_btnm_signal(lv_obj_t * btnm, lv_signal_t sign, void * param) 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 == NULL) { + indev = lv_indev_get_next(NULL); + indev_type = lv_indev_get_type(indev); + } if(indev_type == LV_INDEV_TYPE_POINTER) { /*Select the clicked button*/ diff --git a/src/lv_objx/lv_img.c b/src/lv_objx/lv_img.c index c78e1d93f..0f52206a4 100644 --- a/src/lv_objx/lv_img.c +++ b/src/lv_objx/lv_img.c @@ -502,6 +502,9 @@ static lv_design_res_t lv_img_design(lv_obj_t * img, const lv_area_t * clip_area cover = lv_area_is_in(clip_area, &img->coords) ? LV_DESIGN_RES_COVER : LV_DESIGN_RES_NOT_COVER; } + const lv_style_t * style = lv_img_get_style(img, LV_IMG_STYLE_MAIN); + if(style->image.opa < LV_OPA_MAX) return false; + return cover; } else if(mode == LV_DESIGN_DRAW_MAIN) { if(ext->h == 0 || ext->w == 0) return true;