cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=c567f0ba9f2ebb77f82c232dfb88ff235c0e224a

commit c567f0ba9f2ebb77f82c232dfb88ff235c0e224a
Author: Jaehwan Kim <[email protected]>
Date:   Sat Oct 18 13:56:30 2014 +0200

    edje: fix the image set bug.
    
    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 <[email protected]>
---
 src/lib/edje/edje_calc.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c
index 851c15e..9cfcce5 100644
--- a/src/lib/edje/edje_calc.c
+++ b/src/lib/edje/edje_calc.c
@@ -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;

-- 


Reply via email to