/* Search the most top object which fully covers an area  */
static lv_obj_t * lv_refr_get_top_obj(const lv_area_t *area_p, lv_obj_t *obj)
/* Search the most top object which fully covers an area  */
static lv_obj_t * lv_refr_get_top_obj(const lv_area_t *area_p, lv_obj_t *obj)
{
    lv_obj_t * i;
    lv_obj_t * found_p = NULL;
    if(lv_area_is_in(area_p, &obj->coords) && obj->hidden == 0) {
        LL_READ(obj->child_ll, i)        {
            found_p = lv_refr_get_top_obj(area_p, i);
            if(found_p != NULL) {
                break;
            }
        }
        if(found_p == NULL) {
            lv_style_t * style = lv_obj_get_style(obj);
            if(style->body.opa == LV_OPA_COVER &&
                    obj->design_func(obj, area_p, LV_DESIGN_COVER_CHK) != false &&
                    lv_obj_get_opa_scale(obj) == LV_OPA_COVER) {
                found_p = obj;
            }
        }
    }
    return found_p;
}