On Wed, 20 Nov 2013 20:27:16 -0800 ChunEon Park <her...@hermet.pe.kr> said:
this (plus eea338764abcf38c8be404be7e3c540cfedc002b which depends on the below commit) cause cpufreq arrows to be wrong in their initial state (if they don't move up and down). try set your governor to performance and see cpufreq. :) see attached image. you can reproduce this by having cpufreq come up always at max, THEN use ibar THEN run some app that is not in your ibar so the ibar "extra apps" expands. make sure cpufreq is to the right of ibar... so the gadget has to move to the right to make space for ibar content. the cpufreq dial/needle doesnt move along with the rest of the object. > hermet pushed a commit to branch master. > > http://git.enlightenment.org/core/efl.git/commit/?id=12aba0db5a0949488d37b69b8696ed424666dca8 > > commit 12aba0db5a0949488d37b69b8696ed424666dca8 > Author: ChunEon Park <her...@hermet.pe.kr> > Date: Thu Nov 21 13:26:37 2013 +0900 > > edje - Fix to update map enabled part when edje object is moved. > --- > ChangeLog | 4 +++ > NEWS | 1 + > src/lib/edje/edje_calc.c | 6 ++++- > src/lib/edje/edje_private.h | 1 + > src/lib/edje/edje_smart.c | 59 +++++++++++++++++++++ > +----------------------- 5 files changed, 40 insertions(+), 31 deletions(-) > > diff --git a/ChangeLog b/ChangeLog > index b9c4c28..de43e9e 100644 > --- a/ChangeLog > +++ b/ChangeLog > @@ -1,3 +1,7 @@ > +2013-11-21 ChunEon Park (Hermet) > + > + * Edje: Fix to update map-enabled part when the edje object is moved. > + > 2013-11-20 Cedric Bail > > * Eina: Fix a possible race condition during eina_file_close. > diff --git a/NEWS b/NEWS > index 01803f8..cdb7d7d 100644 > --- a/NEWS > +++ b/NEWS > @@ -437,6 +437,7 @@ Fixes: > - Fixed memory leak in the edje map color transition. > - Add null checking for name of anchor and item in geometry get > functions. > - Fix use of eina_hash_pointer to actually look at the pointer value. > + - Fix to update map-enabled part when the edje object is moved. > > * Efreet: > - Fix desktop command parsing of https. > diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c > index b6816ee..6f98455 100644 > --- a/src/lib/edje/edje_calc.c > +++ b/src/lib/edje/edje_calc.c > @@ -650,7 +650,6 @@ _edje_recalc_do(Edje *ed) > need_calc = evas_object_smart_need_recalculate_get(ed->obj); > evas_object_smart_need_recalculate_set(ed->obj, 0); > if (!ed->dirty) return; > - ed->have_mapped_part = EINA_FALSE; > ed->dirty = EINA_FALSE; > ed->state++; > for (i = 0; i < ed->table_parts_size; i++) > @@ -3353,6 +3352,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int > flags, Edje_Calc_Params *sta (statep1 >= ep->param1.state) || > proxy_invalidate || > state || > + (ep->map_on && ed->have_mapped_part) || > ((ep->part->type == EDJE_PART_TYPE_TEXT || > ep->part->type == EDJE_PART_TYPE_TEXTBLOCK) && > ed->text_part_change)) > @@ -3421,6 +3421,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int > flags, Edje_Calc_Params *sta (statep2 >= ep->param2->state) || > proxy_invalidate || > state || > + (ep->map_on && ed->have_mapped_part) || > ((ep->part->type == EDJE_PART_TYPE_TEXT || > ep->part->type == EDJE_PART_TYPE_TEXTBLOCK) && > ed->text_part_change)) > @@ -3894,6 +3895,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int > flags, Edje_Calc_Params *sta static Evas_Map *map = NULL; > > ed->have_mapped_part = EINA_TRUE; > + ep->map_on = EINA_TRUE; > // create map and populate with part geometry > if (!map) map = evas_map_new(4); > > @@ -3915,6 +3917,8 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int > flags, Edje_Calc_Params *sta } > else > { > + ep->map_on = EINA_FALSE; > + > if (ep->nested_smart) > { /* Cancel map of smart obj holding nested parts */ > eo_do(ep->nested_smart, > diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h > index b6e0db9..bfcc9b7 100644 > --- a/src/lib/edje/edje_private.h > +++ b/src/lib/edje/edje_private.h > @@ -1594,6 +1594,7 @@ struct _Edje_Real_Part > #ifdef EDJE_CALC_CACHE > Eina_Bool invalidate : 1; // 0 > #endif > + Eina_Bool map_on : 1; // 0 > }; // 128 > // WITH EDJE_CALC_CACHE: 407 > > diff --git a/src/lib/edje/edje_smart.c b/src/lib/edje/edje_smart.c > index d4c095e..7fb79a8 100644 > --- a/src/lib/edje/edje_smart.c > +++ b/src/lib/edje/edje_smart.c > @@ -151,6 +151,7 @@ _edje_smart_move(Eo *obj EINA_UNUSED, void *_pd, va_list > *list) Evas_Coord x = va_arg(*list, Evas_Coord); > Evas_Coord y = va_arg(*list, Evas_Coord); > Edje *ed = _pd; > + unsigned int i; > > if ((ed->x == x) && (ed->y == y)) return; > ed->x = x; > @@ -168,43 +169,41 @@ _edje_smart_move(Eo *obj EINA_UNUSED, void *_pd, > va_list *list) return; > } > > - if (ed->have_mapped_part) > + for (i = 0; i < ed->table_parts_size; i++) > { > - ed->dirty = EINA_TRUE; > - _edje_recalc_do(ed); > - } > - else > - { > - unsigned int i; > + Edje_Real_Part *ep; > > - for (i = 0; i < ed->table_parts_size; i++) > + ep = ed->table_parts[i]; > + if ((ep->type == EDJE_RP_TYPE_TEXT) && (ep->typedata.text)) > { > - Edje_Real_Part *ep; > - > - ep = ed->table_parts[i]; > - if ((ep->type == EDJE_RP_TYPE_TEXT) && (ep->typedata.text)) > - { > - evas_object_move(ep->object, > - ed->x + ep->x + > ep->typedata.text->offset.x, > - ed->y + ep->y + > ep->typedata.text->offset.y); > - } > - else > + evas_object_move(ep->object, > + ed->x + ep->x + ep->typedata.text->offset.x, > + ed->y + ep->y + ep->typedata.text->offset.y); > + } > + else > + { > + evas_object_move(ep->object, ed->x + ep->x, ed->y + ep->y); > + if ((ep->type == EDJE_RP_TYPE_SWALLOW) && > + (ep->typedata.swallow)) > { > - evas_object_move(ep->object, ed->x + ep->x, ed->y + ep->y); > - if ((ep->type == EDJE_RP_TYPE_SWALLOW) && > - (ep->typedata.swallow)) > - { > - if (ep->typedata.swallow->swallowed_object) > - evas_object_move > - (ep->typedata.swallow->swallowed_object, > - ed->x + ep->x, > - ed->y + ep->y); > - } > + if (ep->typedata.swallow->swallowed_object) > + evas_object_move > + (ep->typedata.swallow->swallowed_object, > + ed->x + ep->x, > + ed->y + ep->y); > } > - if (ep->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) > - _edje_entry_real_part_configure(ed, ep); > } > + if (ep->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) > + _edje_entry_real_part_configure(ed, ep); > } > + > + if (ed->have_mapped_part) > + { > + ed->dirty = EINA_TRUE; > + _edje_recalc_do(ed); > + ed->have_mapped_part = EINA_FALSE; > + } > + > // _edje_emit(ed, "move", NULL); > } > > > -- > > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) ras...@rasterman.com
<<attachment: shot-2013-11-22_11-56-45.png>>
------------------------------------------------------------------------------ Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk
_______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel