Re: [E-devel] E SVN: barbieri trunk/edje/src/lib
On Thu, 1 Sep 2011 15:55:17 -0300 Gustavo Sverzut Barbieri barbi...@profusion.mobi wrote: On Thu, Sep 1, 2011 at 3:13 PM, Daniel Juyung Seo seojuyu...@gmail.com wrote: Answers? I'm interested in the answer of discomfitor's question. If I need to fix my edc, I need to know how do I fix it. I have NO idea what you did, no time to check it as well. If you can isolate it into a very minimal example like I did to spot the problem (see e-devel), then I can look at it. But no way I will install another theme and debug it into e17 :-D This was fixed in under 5 minutes by jeffdameth (@63169). Otherwise just fix it by moving to the best theme ever: detorious! I don't think this attitude is very becoming of an EFL developer... BR, -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -- MSN: barbi...@gmail.com Skype: gsbarbieri Mobile: +55 (19) 9225-2202 -- Special Offer -- Download ArcSight Logger for FREE! Finally, a world-class log management solution at an even better price-free! And you'll get a free Love Thy Logs t-shirt when you download Logger. Secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsisghtdev2dev ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Mike Blumenkrantz Zentific: Coding in binary since '10. -- Special Offer -- Download ArcSight Logger for FREE! Finally, a world-class log management solution at an even better price-free! And you'll get a free Love Thy Logs t-shirt when you download Logger. Secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsisghtdev2dev ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: barbieri trunk/edje/src/lib
Answers? I'm interested in the answer of discomfitor's question. If I need to fix my edc, I need to know how do I fix it. Thanks. Daniel Juyung Seo (SeoZ) On Wed, Aug 31, 2011 at 7:27 AM, Mike Blumenkrantz m...@zentific.com wrote: On Mon, 29 Aug 2011 08:58:41 -0300 Gustavo Barbieri barbi...@profusion.mobi wrote: Likely it was wrong and happened to work due wrong collateral effects. --Gustavo Sent from my iPhone On 28/08/2011, at 03:01, Mike Blumenkrantz m...@zentific.com wrote: On Sat, 20 Aug 2011 18:38:17 -0700 Enlightenment SVN no-re...@enlightenment.org wrote: Log: change text's single recalc to use apply version. Original _edje_part_recalc_single_text() was not working as expected since it was not doing size fit, range, ellipsis and so on. The purpose of this function compared with _edje_text_recalc_apply() is to be faster, not calling Evas update functions. However for text this is quite difficult given that to fit we need to set the font, size, style, etc. If it was done correctly, we'd save some calls to move and some color sets, however those shouldn't matter much in the overall picture. I've changed this to force applying the value, it should be more correct and not so slow. The previous code is kept below for reference but should be removed before next release! Author: barbieri Date: 2011-08-20 18:38:17 -0700 (Sat, 20 Aug 2011) New Revision: 62640 Trac: http://trac.enlightenment.org/e/changeset/62640 Modified: trunk/edje/src/lib/edje_calc.c this commit totally breaks the text in my theme and I don't know why. -- Mike Blumenkrantz Zentific: Coding in binary since '10. probably, but how do I fix it? -- Mike Blumenkrantz Zentific: Coding in binary since '10. -- Special Offer -- Download ArcSight Logger for FREE! Finally, a world-class log management solution at an even better price-free! And you'll get a free Love Thy Logs t-shirt when you download Logger. Secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsisghtdev2dev ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Special Offer -- Download ArcSight Logger for FREE! Finally, a world-class log management solution at an even better price-free! And you'll get a free Love Thy Logs t-shirt when you download Logger. Secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsisghtdev2dev ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: barbieri trunk/edje/src/lib
On Thu, Sep 1, 2011 at 3:13 PM, Daniel Juyung Seo seojuyu...@gmail.com wrote: Answers? I'm interested in the answer of discomfitor's question. If I need to fix my edc, I need to know how do I fix it. I have NO idea what you did, no time to check it as well. If you can isolate it into a very minimal example like I did to spot the problem (see e-devel), then I can look at it. But no way I will install another theme and debug it into e17 :-D Otherwise just fix it by moving to the best theme ever: detorious! BR, -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -- MSN: barbi...@gmail.com Skype: gsbarbieri Mobile: +55 (19) 9225-2202 -- Special Offer -- Download ArcSight Logger for FREE! Finally, a world-class log management solution at an even better price-free! And you'll get a free Love Thy Logs t-shirt when you download Logger. Secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsisghtdev2dev ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: barbieri trunk/edje/src/lib
On Mon, 29 Aug 2011 08:58:41 -0300 Gustavo Barbieri barbi...@profusion.mobi wrote: Likely it was wrong and happened to work due wrong collateral effects. --Gustavo Sent from my iPhone On 28/08/2011, at 03:01, Mike Blumenkrantz m...@zentific.com wrote: On Sat, 20 Aug 2011 18:38:17 -0700 Enlightenment SVN no-re...@enlightenment.org wrote: Log: change text's single recalc to use apply version. Original _edje_part_recalc_single_text() was not working as expected since it was not doing size fit, range, ellipsis and so on. The purpose of this function compared with _edje_text_recalc_apply() is to be faster, not calling Evas update functions. However for text this is quite difficult given that to fit we need to set the font, size, style, etc. If it was done correctly, we'd save some calls to move and some color sets, however those shouldn't matter much in the overall picture. I've changed this to force applying the value, it should be more correct and not so slow. The previous code is kept below for reference but should be removed before next release! Author: barbieri Date: 2011-08-20 18:38:17 -0700 (Sat, 20 Aug 2011) New Revision: 62640 Trac: http://trac.enlightenment.org/e/changeset/62640 Modified: trunk/edje/src/lib/edje_calc.c this commit totally breaks the text in my theme and I don't know why. -- Mike Blumenkrantz Zentific: Coding in binary since '10. probably, but how do I fix it? -- Mike Blumenkrantz Zentific: Coding in binary since '10. -- Special Offer -- Download ArcSight Logger for FREE! Finally, a world-class log management solution at an even better price-free! And you'll get a free Love Thy Logs t-shirt when you download Logger. Secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsisghtdev2dev ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: barbieri trunk/edje/src/lib
Likely it was wrong and happened to work due wrong collateral effects. --Gustavo Sent from my iPhone On 28/08/2011, at 03:01, Mike Blumenkrantz m...@zentific.com wrote: On Sat, 20 Aug 2011 18:38:17 -0700 Enlightenment SVN no-re...@enlightenment.org wrote: Log: change text's single recalc to use apply version. Original _edje_part_recalc_single_text() was not working as expected since it was not doing size fit, range, ellipsis and so on. The purpose of this function compared with _edje_text_recalc_apply() is to be faster, not calling Evas update functions. However for text this is quite difficult given that to fit we need to set the font, size, style, etc. If it was done correctly, we'd save some calls to move and some color sets, however those shouldn't matter much in the overall picture. I've changed this to force applying the value, it should be more correct and not so slow. The previous code is kept below for reference but should be removed before next release! Author: barbieri Date: 2011-08-20 18:38:17 -0700 (Sat, 20 Aug 2011) New Revision: 62640 Trac: http://trac.enlightenment.org/e/changeset/62640 Modified: trunk/edje/src/lib/edje_calc.c this commit totally breaks the text in my theme and I don't know why. -- Mike Blumenkrantz Zentific: Coding in binary since '10. -- EMC VNX: the world's simplest storage, starting under $10K The only unified storage solution that offers unified management Up to 160% more powerful than alternatives and 25% more efficient. Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- EMC VNX: the world's simplest storage, starting under $10K The only unified storage solution that offers unified management Up to 160% more powerful than alternatives and 25% more efficient. Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: barbieri trunk/edje/src/lib
On Sat, 20 Aug 2011 18:38:17 -0700 Enlightenment SVN no-re...@enlightenment.org wrote: Log: change text's single recalc to use apply version. Original _edje_part_recalc_single_text() was not working as expected since it was not doing size fit, range, ellipsis and so on. The purpose of this function compared with _edje_text_recalc_apply() is to be faster, not calling Evas update functions. However for text this is quite difficult given that to fit we need to set the font, size, style, etc. If it was done correctly, we'd save some calls to move and some color sets, however those shouldn't matter much in the overall picture. I've changed this to force applying the value, it should be more correct and not so slow. The previous code is kept below for reference but should be removed before next release! Author: barbieri Date: 2011-08-20 18:38:17 -0700 (Sat, 20 Aug 2011) New Revision: 62640 Trac: http://trac.enlightenment.org/e/changeset/62640 Modified: trunk/edje/src/lib/edje_calc.c this commit totally breaks the text in my theme and I don't know why. -- Mike Blumenkrantz Zentific: Coding in binary since '10. -- EMC VNX: the world's simplest storage, starting under $10K The only unified storage solution that offers unified management Up to 160% more powerful than alternatives and 25% more efficient. Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: barbieri trunk/edje/src/lib
On Fri, 10 Jul 2009, Enlightenment SVN wrote: evas_object_size_hint_min_get(ep-object, min_w, min_h); - if (chosen_desc-box.min.h) + if (chosen_desc-box.min.h (p3-w min_w)) p3-w = min_w; - if (chosen_desc-box.min.v) + if (chosen_desc-box.min.v (p3-h min_w)) ^ are you sure it's min_w and not min_h ? p3-h = min_h; } Modified: trunk/edje/src/lib/edje_util.c === --- trunk/edje/src/lib/edje_util.c 2009-07-10 15:57:49 UTC (rev 41296) +++ trunk/edje/src/lib/edje_util.c 2009-07-10 23:13:09 UTC (rev 41297) @@ -2732,11 +2732,11 @@ while (children) { Evas_Object *child_obj = children-data; - _edje_box_child_remove(rp, child_obj); if (evas_object_data_get(child_obj, \377 edje.box_item)) i++; else { +_edje_box_child_remove(rp, child_obj); if (!evas_object_box_remove_at(rp-object, i)) return EINA_FALSE; if (clear) -- Enter the BlackBerry Developer Challenge This is your chance to win up to $100,000 in prizes! For a limited time, vendors submitting new applications to BlackBerry App World(TM) will have the opportunity to enter the BlackBerry Developer Challenge. See full prize details at: http://p.sf.net/sfu/Challenge ___ enlightenment-svn mailing list enlightenment-...@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-svn -- Ce message a été vérifié par MailScanner pour des virus ou des polluriels et rien de suspect n'a été trouvé. Message délivré par le serveur de messagerie de l'Université d'Evry. -- Enter the BlackBerry Developer Challenge This is your chance to win up to $100,000 in prizes! For a limited time, vendors submitting new applications to BlackBerry App World(TM) will have the opportunity to enter the BlackBerry Developer Challenge. See full prize details at: http://p.sf.net/sfu/Challenge___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: barbieri trunk/edje/src/lib
Oops! Thanks for spot that one. (un)fortunately i'm drinking some beers at a pub, so no way to fix it myself. Please commit the fix. Regards On 7/10/09, Vincent Torri vto...@univ-evry.fr wrote: On Fri, 10 Jul 2009, Enlightenment SVN wrote: evas_object_size_hint_min_get(ep-object, min_w, min_h); - if (chosen_desc-box.min.h) + if (chosen_desc-box.min.h (p3-w min_w)) p3-w = min_w; - if (chosen_desc-box.min.v) + if (chosen_desc-box.min.v (p3-h min_w)) ^ are you sure it's min_w and not min_h ? p3-h = min_h; } Modified: trunk/edje/src/lib/edje_util.c === --- trunk/edje/src/lib/edje_util.c 2009-07-10 15:57:49 UTC (rev 41296) +++ trunk/edje/src/lib/edje_util.c 2009-07-10 23:13:09 UTC (rev 41297) @@ -2732,11 +2732,11 @@ while (children) { Evas_Object *child_obj = children-data; -_edje_box_child_remove(rp, child_obj); if (evas_object_data_get(child_obj, \377 edje.box_item)) i++; else { + _edje_box_child_remove(rp, child_obj); if (!evas_object_box_remove_at(rp-object, i)) return EINA_FALSE; if (clear) -- Enter the BlackBerry Developer Challenge This is your chance to win up to $100,000 in prizes! For a limited time, vendors submitting new applications to BlackBerry App World(TM) will have the opportunity to enter the BlackBerry Developer Challenge. See full prize details at: http://p.sf.net/sfu/Challenge ___ enlightenment-svn mailing list enlightenment-...@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-svn -- Ce message a été vérifié par MailScanner pour des virus ou des polluriels et rien de suspect n'a été trouvé. Message délivré par le serveur de messagerie de l'Université d'Evry. -- Sent from my mobile device Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -- MSN: barbi...@gmail.com Skype: gsbarbieri Mobile: +55 (19) 9225-2202 -- Enter the BlackBerry Developer Challenge This is your chance to win up to $100,000 in prizes! For a limited time, vendors submitting new applications to BlackBerry App World(TM) will have the opportunity to enter the BlackBerry Developer Challenge. See full prize details at: http://p.sf.net/sfu/Challenge ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: barbieri trunk/edje/src/lib
2009/5/2 Enlightenment SVN no-re...@enlightenment.org: Log: + /* the signal contains a colon, split the signal into group:signal, + * and deliver it to group + */ + char *part = strdupa(sig); + if (part) Warning: strdupa is not available in NetBSD, so this commit makes E17 not buildable in this OS. Massimiliano -- Register Now Save for Velocity, the Web Performance Operations Conference from O'Reilly Media. Velocity features a full day of expert-led, hands-on workshops and two days of sessions from industry leaders in dedicated Performance Operations tracks. Use code vel09scf and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: barbieri trunk/edje/src/lib
fixed, you bastards that use bsds :-) On Sat, May 2, 2009 at 6:22 PM, Massimiliano Calamelli mcalame...@gmail.com wrote: 2009/5/2 Enlightenment SVN no-re...@enlightenment.org: Log: + /* the signal contains a colon, split the signal into group:signal, + * and deliver it to group + */ + char *part = strdupa(sig); + if (part) Warning: strdupa is not available in NetBSD, so this commit makes E17 not buildable in this OS. Massimiliano -- Register Now Save for Velocity, the Web Performance Operations Conference from O'Reilly Media. Velocity features a full day of expert-led, hands-on workshops and two days of sessions from industry leaders in dedicated Performance Operations tracks. Use code vel09scf and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -- MSN: barbi...@gmail.com Skype: gsbarbieri Mobile: +55 (19) 9225-2202 -- Register Now Save for Velocity, the Web Performance Operations Conference from O'Reilly Media. Velocity features a full day of expert-led, hands-on workshops and two days of sessions from industry leaders in dedicated Performance Operations tracks. Use code vel09scf and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: barbieri trunk/edje/src/lib
On Thu, Feb 5, 2009 at 4:15 PM, Enlightenment SVN no-re...@enlightenment.org wrote: Log: Interpolate text font size. Often requested for animations that want to grow or shrink text quickly. This is a faster alternative to using geometry with rel1/rel2 and text.fit: 1 1; since it does not need to figure out which size fits better into that object. I tested and it does not seem to introduce any regression. Also checked with scale and text_class variations. find attached 2 files to test it. -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -- MSN: barbi...@gmail.com Skype: gsbarbieri Mobile: +55 (19) 9225-2202 collections { group { name: main; parts { part { name: t1; type: TEXT; mouse_events: 0; scale: 1; description { state: default 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 0.5; offset: -1 -1; } text { text_class: t1_class1; font: Sans Serif; size: 10; text: contents; } } description { state: big 0.0; inherit: default 0.0; text { text_class: t1_class2; font: Sans Serif; size: 36; text: contents; } } } programs { program { name: anim1_t1; signal: load; action: STATE_SET big 0.0; target: t1; transition: LINEAR 0.5; after: anim2_t1; } program { name: anim2_t1; action: STATE_SET default 0.0; target: t1; transition: LINEAR 0.5; after: anim1_t1; } } #if 0 part { name: t2; type: TEXT; mouse_events: 0; description { state: default 0.0; rel1 { relative: 0.0 0.7; offset: 0 0; } rel2 { relative: 1.0 0.9; offset: -1 -1; } text { text_class: t2_class; font: Sans Serif; size: 10; text: contents; fit: 0 1; } } description { state: big 0.0; inherit: default 0.0; rel1 { relative: 0.0 0.5; offset: 0 0; } rel2 { relative: 1.0 1.0; offset: -1 -1; } } } programs { program { name: anim1_t2; signal: load; action: STATE_SET big 0.0; target: t2; transition: LINEAR 5.0; after: anim2_t2; } program { name: anim2_t2; action: STATE_SET default 0.0; target: t2; transition: LINEAR 5.0; after: anim1_t2; } } #endif } } } #include Edje.h #include Ecore_Evas.h #include Evas.h #include Ecore.h #include stdio.h #include stdlib.h static void on_del(void *data, Evas *e, Evas_Object *o, void *ei) { ecore_main_loop_quit(); } int main(int argc, char *argv[]) { Ecore_Evas *ee; Evas *e; Evas_Object *stack, *bg, *ed; const char *file, *group; if (argc 3) { fputs(ERROR: missing file and/or group names.\n, stderr); return -1; } file = argv[1]; group = argv[2]; edje_init(); ecore_evas_init(); evas_init(); ecore_init(); ee = ecore_evas_new(NULL, 0, 0, 320, 240, NULL); e = ecore_evas_get(ee); stack = evas_object_box_add(e); evas_object_box_layout_set(stack, evas_object_box_layout_stack, NULL, NULL); evas_object_resize(stack, 320, 240); evas_object_event_callback_add(stack, EVAS_CALLBACK_DEL, on_del, NULL); ecore_evas_object_associate(ee, stack, ECORE_EVAS_OBJECT_ASSOCIATE_DEL); evas_object_show(stack); bg = evas_object_rectangle_add(e); evas_object_color_set(bg, 0, 0, 0, 255); evas_object_size_hint_align_set(bg, -1.0, -1.0); evas_object_show(bg); evas_object_box_append(stack, bg); ed = edje_object_add(e); if (!edje_object_file_set(ed, file, group)) { int err = edje_object_load_error_get(ed); const char *errmsg = edje_load_error_str(err); fprintf(stderr, ERROR: could not load edje file=%s, group=%s: %s\n,
Re: [E-devel] E SVN: barbieri trunk/edje/src/lib
On Tue, Sep 9, 2008 at 9:34 PM, Gustavo Sverzut Barbieri [EMAIL PROTECTED] wrote: On Tue, Sep 9, 2008 at 9:14 PM, Gustavo Sverzut Barbieri [EMAIL PROTECTED] wrote: On Tue, Sep 9, 2008 at 8:41 PM, [EMAIL PROTECTED] wrote: Author: barbieri Date: 2008-09-09 16:41:42 -0700 (Tue, 09 Sep 2008) New Revision: 35908 Modified: trunk/edje/src/lib/edje_calc.c trunk/edje/src/lib/edje_private.h trunk/edje/src/lib/edje_smart.c trunk/edje/src/lib/edje_util.c Log: Revert edje calculate optimizations. Edje is tricky, it's event processing is too weird and Cedric's changes to make it work are not working as expected. Edje freezes itself while processing signals, but in mouse down cb it forces recalculate, which seems was previously ignored, but now they are not. We should look at how to fix this and then re-apply this patch. Attached is a patch to attempt to fix the issues. It will not look for postponed flag before recalculate (postpone does not force it anymore) and for input event callbacks it will force recalculation with _edje_recalc_do(). I grep'ed for other _edje_recalc() code, there are some suspicious cases in edje_program(), it would be great if people with embryo-intensive applications could apply this patch and report if there are problems. As I suspected, edje_program.c code does need to forcelly call _edje_recalc_do(). Attached are two patches, the preferred one that just forces recalc after scripts (embryo) run and another that forces it after all kind of programs run. Please try the preferred and if it does not work try alternative. Please report which one worked or failed. update of patch so it applies nicely to current svn. Nothing else changed. -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -- MSN: [EMAIL PROTECTED] Skype: gsbarbieri Mobile: +55 (19) 9225-2202 Index: src/lib/edje_program.c === --- src/lib/edje_program.c (revision 36009) +++ src/lib/edje_program.c (working copy) @@ -783,7 +783,7 @@ _edje_program_run(Edje *ed, Edje_Program *pr, int _edje_embryo_test_run(ed, fname, ssig, ssrc); _edje_emit(ed, program,stop, pr-name); if (_edje_block_break(ed)) goto break_prog; - _edje_recalc(ed); + _edje_recalc_do(ed); } else { Index: src/lib/edje_util.c === --- src/lib/edje_util.c (revision 36009) +++ src/lib/edje_util.c (working copy) @@ -787,6 +787,10 @@ edje_object_part_object_get(const Evas_Object *obj ed = _edje_fetch(obj); if ((!ed) || (!part)) return NULL; + + /* Need to recalc before providing the object. */ + _edje_recalc_do(ed); + rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) return NULL; return rp-object; @@ -820,6 +824,10 @@ edje_object_part_geometry_get(const Evas_Object *o if (h) *h = 0; return; } + + /* Need to recalc before providing the object. */ + _edje_recalc_do(ed); + rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) { @@ -900,6 +908,10 @@ edje_object_part_text_get(const Evas_Object *obj, ed = _edje_fetch(obj); if ((!ed) || (!part)) return NULL; + + /* Need to recalc before providing the object. */ + _edje_recalc_do(ed); + rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) return NULL; if (rp-part-type == EDJE_PART_TYPE_TEXT) @@ -927,6 +939,10 @@ edje_object_part_swallow(Evas_Object *obj, const c ed = _edje_fetch(obj); if ((!ed) || (!part)) return; + + /* Need to recalc before providing the object. */ + _edje_recalc_do(ed); + rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) return; if (rp-part-type != EDJE_PART_TYPE_SWALLOW) return; @@ -1093,7 +1109,7 @@ edje_object_part_unswallow(Evas_Object *obj, Evas_ rp-swallow_params.max.w = 0; rp-swallow_params.max.h = 0; rp-edje-dirty = 1; - _edje_recalc(rp-edje); + _edje_recalc_do(rp-edje); return; } } @@ -,6 +1127,10 @@ edje_object_part_swallow_get(const Evas_Object *ob ed = _edje_fetch(obj); if ((!ed) || (!part)) return NULL; + + /* Need to recalc before providing the object. */ + _edje_recalc_do(ed); + rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) return NULL; return rp-swallowed_object; @@ -1160,6 +1180,10 @@ edje_object_size_max_get(const Evas_Object *obj, E if (maxh) *maxh = 0; return; } + + /* Need to recalc before providing the object. */ + _edje_recalc_do(ed); + if (ed-collection-prop.max.w == 0) { /* XXX TODO: convert maxw to 0, fix things that break. */ @@ -1202,7 +1226,7 @@ edje_object_calc_force(Evas_Object *obj) _edje_freeze_val = 0; ed-freeze = 0; - _edje_recalc(ed); + _edje_recalc_do(ed); ed-freeze = pf; _edje_freeze_val = pf2; @@ -1266,7 +1290,7 @@ edje_object_size_min_restricted_calc(Evas_Object
Re: [E-devel] E SVN: barbieri trunk/edje/src/lib
On Tue, Sep 9, 2008 at 8:41 PM, [EMAIL PROTECTED] wrote: Author: barbieri Date: 2008-09-09 16:41:42 -0700 (Tue, 09 Sep 2008) New Revision: 35908 Modified: trunk/edje/src/lib/edje_calc.c trunk/edje/src/lib/edje_private.h trunk/edje/src/lib/edje_smart.c trunk/edje/src/lib/edje_util.c Log: Revert edje calculate optimizations. Edje is tricky, it's event processing is too weird and Cedric's changes to make it work are not working as expected. Edje freezes itself while processing signals, but in mouse down cb it forces recalculate, which seems was previously ignored, but now they are not. We should look at how to fix this and then re-apply this patch. Attached is a patch to attempt to fix the issues. It will not look for postponed flag before recalculate (postpone does not force it anymore) and for input event callbacks it will force recalculation with _edje_recalc_do(). I grep'ed for other _edje_recalc() code, there are some suspicious cases in edje_program(), it would be great if people with embryo-intensive applications could apply this patch and report if there are problems. If nobody replies in 1 week I'll commit this patch. -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -- MSN: [EMAIL PROTECTED] Skype: gsbarbieri Mobile: +55 (19) 9225-2202 Index: src/lib/edje_util.c === --- src/lib/edje_util.c (revision 35908) +++ src/lib/edje_util.c (working copy) @@ -735,6 +735,10 @@ edje_object_part_object_get(const Evas_Object *obj ed = _edje_fetch(obj); if ((!ed) || (!part)) return NULL; + + /* Need to recalc before providing the object. */ + _edje_recalc_do(ed); + rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) return NULL; return rp-object; @@ -768,6 +772,10 @@ edje_object_part_geometry_get(const Evas_Object *o if (h) *h = 0; return; } + + /* Need to recalc before providing the object. */ + _edje_recalc_do(ed); + rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) { @@ -848,6 +856,10 @@ edje_object_part_text_get(const Evas_Object *obj, ed = _edje_fetch(obj); if ((!ed) || (!part)) return NULL; + + /* Need to recalc before providing the object. */ + _edje_recalc_do(ed); + rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) return NULL; if (rp-part-type == EDJE_PART_TYPE_TEXT) @@ -875,6 +887,10 @@ edje_object_part_swallow(Evas_Object *obj, const c ed = _edje_fetch(obj); if ((!ed) || (!part)) return; + + /* Need to recalc before providing the object. */ + _edje_recalc_do(ed); + rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) return; if (rp-part-type != EDJE_PART_TYPE_SWALLOW) return; @@ -1041,7 +1057,7 @@ edje_object_part_unswallow(Evas_Object *obj, Evas_ rp-swallow_params.max.w = 0; rp-swallow_params.max.h = 0; rp-edje-dirty = 1; - _edje_recalc(rp-edje); + _edje_recalc_do(rp-edje); return; } } @@ -1059,6 +1075,10 @@ edje_object_part_swallow_get(const Evas_Object *ob ed = _edje_fetch(obj); if ((!ed) || (!part)) return NULL; + + /* Need to recalc before providing the object. */ + _edje_recalc_do(ed); + rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) return NULL; return rp-swallowed_object; @@ -1108,6 +1128,10 @@ edje_object_size_max_get(const Evas_Object *obj, E if (maxh) *maxh = 0; return; } + + /* Need to recalc before providing the object. */ + _edje_recalc_do(ed); + if (ed-collection-prop.max.w == 0) { /* XXX TODO: convert maxw to 0, fix things that break. */ @@ -1145,7 +1169,7 @@ edje_object_calc_force(Evas_Object *obj) ed-dirty = 1; pf = ed-freeze; ed-freeze = 0; - _edje_recalc(ed); + _edje_recalc_do(ed); ed-freeze = pf; } @@ -1207,7 +1231,7 @@ edje_object_size_min_restricted_calc(Evas_Object * ok = 0; ed-dirty = 1; - _edje_recalc(ed); + _edje_recalc_do(ed); if (reset_maxwh) { maxw = 0; @@ -1311,6 +1335,10 @@ edje_object_part_state_get(const Evas_Object *obj, if (val_ret) *val_ret = 0; return ; } + + /* Need to recalc before providing the object. */ + _edje_recalc_do(ed); + rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) { @@ -1355,6 +1383,10 @@ edje_object_part_drag_dir_get(const Evas_Object *o ed = _edje_fetch(obj); if ((!ed) || (!part)) return EDJE_DRAG_DIR_NONE; + + /* Need to recalc before providing the object. */ + _edje_recalc_do(ed); + rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) return EDJE_DRAG_DIR_NONE; if ((rp-part-dragable.x) (rp-part-dragable.y)) return EDJE_DRAG_DIR_XY; @@ -1419,6 +1451,10 @@ edje_object_part_drag_value_get(const Evas_Object if (dy) *dy
Re: [E-devel] E SVN: barbieri trunk/edje/src/lib
On Tue, Sep 9, 2008 at 9:14 PM, Gustavo Sverzut Barbieri [EMAIL PROTECTED] wrote: On Tue, Sep 9, 2008 at 8:41 PM, [EMAIL PROTECTED] wrote: Author: barbieri Date: 2008-09-09 16:41:42 -0700 (Tue, 09 Sep 2008) New Revision: 35908 Modified: trunk/edje/src/lib/edje_calc.c trunk/edje/src/lib/edje_private.h trunk/edje/src/lib/edje_smart.c trunk/edje/src/lib/edje_util.c Log: Revert edje calculate optimizations. Edje is tricky, it's event processing is too weird and Cedric's changes to make it work are not working as expected. Edje freezes itself while processing signals, but in mouse down cb it forces recalculate, which seems was previously ignored, but now they are not. We should look at how to fix this and then re-apply this patch. Attached is a patch to attempt to fix the issues. It will not look for postponed flag before recalculate (postpone does not force it anymore) and for input event callbacks it will force recalculation with _edje_recalc_do(). I grep'ed for other _edje_recalc() code, there are some suspicious cases in edje_program(), it would be great if people with embryo-intensive applications could apply this patch and report if there are problems. As I suspected, edje_program.c code does need to forcelly call _edje_recalc_do(). Attached are two patches, the preferred one that just forces recalc after scripts (embryo) run and another that forces it after all kind of programs run. Please try the preferred and if it does not work try alternative. Please report which one worked or failed. thanks -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -- MSN: [EMAIL PROTECTED] Skype: gsbarbieri Mobile: +55 (19) 9225-2202 Index: src/lib/edje_program.c === --- src/lib/edje_program.c (revision 35905) +++ src/lib/edje_program.c (working copy) @@ -409,7 +409,7 @@ _edje_program_run_iterate(Edje_Running_Program *ru } } } - _edje_recalc(ed); + _edje_recalc_do(ed); runp-delete_me = 1; if (!ed-walking_actions) { @@ -447,7 +447,7 @@ _edje_program_run_iterate(Edje_Running_Program *ru return 0; } break_prog: - _edje_recalc(ed); + _edje_recalc_do(ed); _edje_thaw(ed); _edje_unref(ed); _edje_unblock(ed); @@ -486,7 +486,7 @@ _edje_program_end(Edje *ed, Edje_Running_Program * } } } - _edje_recalc(ed); + _edje_recalc_do(ed); runp-delete_me = 1; pname = runp-program-name; if (!ed-walking_actions) @@ -632,7 +632,7 @@ _edje_program_run(Edje *ed, Edje_Program *pr, int if (_edje_block_break(ed)) goto break_prog; } } -_edje_recalc(ed); +_edje_recalc_do(ed); } } else if (pr-action == EDJE_ACTION_TYPE_ACTION_STOP) @@ -783,7 +783,7 @@ _edje_program_run(Edje *ed, Edje_Program *pr, int _edje_embryo_test_run(ed, fname, ssig, ssrc); _edje_emit(ed, program,stop, pr-name); if (_edje_block_break(ed)) goto break_prog; - _edje_recalc(ed); + _edje_recalc_do(ed); } else { Index: src/lib/edje_util.c === --- src/lib/edje_util.c (revision 35908) +++ src/lib/edje_util.c (working copy) @@ -735,6 +735,10 @@ edje_object_part_object_get(const Evas_Object *obj ed = _edje_fetch(obj); if ((!ed) || (!part)) return NULL; + + /* Need to recalc before providing the object. */ + _edje_recalc_do(ed); + rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) return NULL; return rp-object; @@ -768,6 +772,10 @@ edje_object_part_geometry_get(const Evas_Object *o if (h) *h = 0; return; } + + /* Need to recalc before providing the object. */ + _edje_recalc_do(ed); + rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) { @@ -848,6 +856,10 @@ edje_object_part_text_get(const Evas_Object *obj, ed = _edje_fetch(obj); if ((!ed) || (!part)) return NULL; + + /* Need to recalc before providing the object. */ + _edje_recalc_do(ed); + rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) return NULL; if (rp-part-type == EDJE_PART_TYPE_TEXT) @@ -875,6 +887,10 @@ edje_object_part_swallow(Evas_Object *obj, const c ed = _edje_fetch(obj); if ((!ed) || (!part)) return; + + /* Need to recalc before providing the object. */ + _edje_recalc_do(ed); + rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) return; if (rp-part-type != EDJE_PART_TYPE_SWALLOW) return; @@ -1041,7 +1057,7 @@ edje_object_part_unswallow(Evas_Object *obj, Evas_ rp-swallow_params.max.w = 0; rp-swallow_params.max.h = 0; rp-edje-dirty = 1; - _edje_recalc(rp-edje); +
Re: [E-devel] E SVN: barbieri trunk/edje/src/lib
Preferred patch looks good, fixes my problems. On Wed, Sep 10, 2008 at 2:34 AM, Gustavo Sverzut Barbieri [EMAIL PROTECTED] wrote: On Tue, Sep 9, 2008 at 9:14 PM, Gustavo Sverzut Barbieri [EMAIL PROTECTED] wrote: On Tue, Sep 9, 2008 at 8:41 PM, [EMAIL PROTECTED] wrote: Author: barbieri Date: 2008-09-09 16:41:42 -0700 (Tue, 09 Sep 2008) New Revision: 35908 Modified: trunk/edje/src/lib/edje_calc.c trunk/edje/src/lib/edje_private.h trunk/edje/src/lib/edje_smart.c trunk/edje/src/lib/edje_util.c Log: Revert edje calculate optimizations. Edje is tricky, it's event processing is too weird and Cedric's changes to make it work are not working as expected. Edje freezes itself while processing signals, but in mouse down cb it forces recalculate, which seems was previously ignored, but now they are not. We should look at how to fix this and then re-apply this patch. Attached is a patch to attempt to fix the issues. It will not look for postponed flag before recalculate (postpone does not force it anymore) and for input event callbacks it will force recalculation with _edje_recalc_do(). I grep'ed for other _edje_recalc() code, there are some suspicious cases in edje_program(), it would be great if people with embryo-intensive applications could apply this patch and report if there are problems. As I suspected, edje_program.c code does need to forcelly call _edje_recalc_do(). Attached are two patches, the preferred one that just forces recalc after scripts (embryo) run and another that forces it after all kind of programs run. Please try the preferred and if it does not work try alternative. Please report which one worked or failed. thanks -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -- MSN: [EMAIL PROTECTED] Skype: gsbarbieri Mobile: +55 (19) 9225-2202 - This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100url=/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel - This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100url=/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel