diff --git a/legacy/edje/src/lib/edje_calc.c b/legacy/edje/src/lib/edje_calc.c index 3e1b1aebb6..db2cc7f4ff 100644 --- a/legacy/edje/src/lib/edje_calc.c +++ b/legacy/edje/src/lib/edje_calc.c @@ -2157,6 +2157,8 @@ _edje_part_recalc_single(Edje *ed, params->type.common.spec.image.t = img_desc->image.border.t; params->type.common.spec.image.b = img_desc->image.border.b; + + params->type.common.spec.image.border_scale_by = img_desc->image.border.scale_by; break; } case EDJE_PART_TYPE_TEXT: @@ -2289,9 +2291,9 @@ _edje_image_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edj evas_object_image_smooth_scale_set(ep->object, p3->smooth); if (chosen_desc->image.border.scale) { - if (chosen_desc->image.border.scale_by > FROM_DOUBLE(0.0)) + if (p3->type.common.spec.image.border_scale_by > FROM_DOUBLE(0.0)) { - FLOAT_T sc2 = MUL(sc, chosen_desc->image.border.scale_by); + FLOAT_T sc2 = MUL(sc, p3->type.common.spec.image.border_scale_by); evas_object_image_border_scale_set(ep->object, TO_DOUBLE(sc2)); } else @@ -2299,9 +2301,9 @@ _edje_image_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edj } else { - if (chosen_desc->image.border.scale_by > FROM_DOUBLE(0.0)) + if (p3->type.common.spec.image.border_scale_by > FROM_DOUBLE(0.0)) evas_object_image_border_scale_set - (ep->object, TO_DOUBLE(chosen_desc->image.border.scale_by)); + (ep->object, TO_DOUBLE(p3->type.common.spec.image.border_scale_by)); else evas_object_image_border_scale_set(ep->object, 1.0); } @@ -2711,6 +2713,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta p3->type.common.spec.image.r = INTP(p1->type.common.spec.image.r, p2->type.common.spec.image.r, pos); p3->type.common.spec.image.t = INTP(p1->type.common.spec.image.t, p2->type.common.spec.image.t, pos); p3->type.common.spec.image.b = INTP(p1->type.common.spec.image.b, p2->type.common.spec.image.b, pos); + p3->type.common.spec.image.border_scale_by = INTP(p1->type.common.spec.image.border_scale_by, p2->type.common.spec.image.border_scale_by, pos); case EDJE_PART_TYPE_PROXY: p3->type.common.fill.x = INTP(p1->type.common.fill.x, p2->type.common.fill.x, pos); p3->type.common.fill.y = INTP(p1->type.common.fill.y, p2->type.common.fill.y, pos); diff --git a/legacy/edje/src/lib/edje_private.h b/legacy/edje/src/lib/edje_private.h index 2acdd6fab0..78f017fdb9 100644 --- a/legacy/edje/src/lib/edje_private.h +++ b/legacy/edje/src/lib/edje_private.h @@ -1220,6 +1220,7 @@ struct _Edje_Calc_Params union { struct { int l, r, t, b; // 16 + FLOAT_T border_scale_by; } image; // 16 } spec; // 16 } common; // 40