edje: fix the image set bug.
authorJaehwan Kim <jae.hwan.kim@samsung.com>
Sat, 18 Oct 2014 11:56:30 +0000 (13:56 +0200)
committerCedric BAIL <cedric@osg.samsung.com>
Sat, 18 Oct 2014 11:56:38 +0000 (13:56 +0200)
Summary: Before using the parameter ep->param1.set, it should be set.

Test Plan:
 diff --git a/data/themes/edc/elm/button.edc b/data/themes/edc/elm/button.edc
 index 097ce85..34a2b98 100644
 --- a/data/themes/edc/elm/button.edc
 +++ b/data/themes/edc/elm/button.edc
@@ -3,6 +3,15 @@ group { name: "elm/button/base/default";
    alias: "elm/button/base/naviframe/back_btn/pager";
    images.image: "button_normal.png" COMP;
    images.image: "button_clicked.png" COMP;
+   images {
+      set {
+         name: "button_normal";
+         image {
+             image: "button_normal.png" COMP;
+             size: 0 0 9999 9999;
+         }
+      }
+   }
 #define ICON     1
 #define LABEL    2
 #define MASK     3
@@ -74,7 +83,7 @@ group { name: "elm/button/base/default";
    parts {
       image { "base"; nomouse;
          desc { "default";
-            image.normal: "button_normal.png";
+            image.normal: "button_normal";
             image.border: 4 4 3 5;
             image.middle: SOLID;
             rel1.offset: -1 0;

and print the value ep->param1.set about "base" part of "elm/button/base/default" group before it is used.
It has a NULL at first time.

Reviewers: raster, jinsol, herb, cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1516

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
src/lib/edje/edje_calc.c

index 851c15e..9cfcce5 100644 (file)
@@ -9,7 +9,7 @@ static void _edje_part_recalc_single(Edje *ed, Edje_Real_Part *ep,
                                      Edje_Real_Part *rel1_to_x, Edje_Real_Part *rel1_to_y,
                                      Edje_Real_Part *rel2_to_x, Edje_Real_Part *rel2_to_y,
                                      Edje_Real_Part *confine_to, Edje_Real_Part *threshold,
-                                    Edje_Calc_Params *params, Edje_Real_Part_Set *set,
+                                     Edje_Calc_Params *params,
                                      Evas_Coord mmw, Evas_Coord mmh,
                                      FLOAT_T pos);
 
@@ -2258,7 +2258,6 @@ _edje_part_recalc_single(Edje *ed,
                          Edje_Real_Part *confine_to,
                          Edje_Real_Part *threshold,
                          Edje_Calc_Params *params,
-                         Edje_Real_Part_Set *set,
                          Evas_Coord mmw, Evas_Coord mmh,
                          FLOAT_T pos)
 {
@@ -2312,8 +2311,11 @@ _edje_part_recalc_single(Edje *ed,
      {
       case EDJE_PART_TYPE_IMAGE:
            {
+              Edje_Real_Part_Set *set;
               Edje_Part_Description_Image *img_desc = (Edje_Part_Description_Image*) desc;
 
+              _edje_real_part_image_set(ed, ep, pos);
+
               /* border */
               params->type.common.spec.image.l = img_desc->image.border.l;
               params->type.common.spec.image.r = img_desc->image.border.r;
@@ -2323,6 +2325,7 @@ _edje_part_recalc_single(Edje *ed,
 
               params->type.common.spec.image.border_scale_by = img_desc->image.border.scale_by;
 
+              set = ep->param1.set;
               if (set && set->set)
                 {
 #define SET_BORDER_DEFINED(Result, Value) Result = Value ? Value : Result;
@@ -3391,7 +3394,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
                                       chosen_desc, center[0], light[0],
                                       persp[0], rp1[Rel1X], rp1[Rel1Y],
                                       rp1[Rel2X], rp1[Rel2Y], confine_to,
-                                      threshold, p1, ep->param1.set, mmw, mmh,
+                                      threshold, p1, mmw, mmh,
                                       pos);
 #ifdef EDJE_CALC_CACHE
              if (flags == FLAG_XY) ep->param1.state = ed->state;
@@ -3460,7 +3463,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
                                       chosen_desc, center[1], light[1],
                                       persp[1], rp2[Rel1X], rp2[Rel1Y],
                                       rp2[Rel2X], rp2[Rel2Y], confine_to,
-                                      threshold, p2, ep->param2->set, mmw, mmh,
+                                      threshold, p2, mmw, mmh,
                                       pos);
 #ifdef EDJE_CALC_CACHE
              if (flags == FLAG_XY) ep->param2->state = ed->state;