[E-devel] Tests failure in EFL
Hi all, Just for your information, there is some test failing in Eina suite: ~/e17/efl$ src/tests/eina/eina_suite ustr test Running suite(s): Eina Max delta(multiplication): 0.007610 (0.729521%) Max delta(division): 0.000757 (1.463794%) # specimen experiment time starting time ending time 10 7422404 541979 7964383 20 6319338 7964904 14284242 this is a test of clists - hello world Run specimens_check: 1000 0123456789 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 98%: Checks: 152, Failures: 2, Errors: 0 tests/eina/eina_test_value.c:1343:F:Value:eina_value_test_convert_int:0: Assertion 'CHECK_FP(f, max_positive_signed_4_bytes)' failed tests/eina/eina_test_value.c:1453:F:Value:eina_value_test_convert_uint:0: Assertion 'CHECK_FP(f, max_positive_unsigned_4_bytes)' failed Daniel -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60133471iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 02/02: Reduce the number of deleted objects to reduce the number of expected error prints
jackdanielz pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=203b6295e930da66a05f76be9a058b556af2c711 commit 203b6295e930da66a05f76be9a058b556af2c711 Author: Daniel Zaoui daniel.za...@samsung.com Date: Sun Sep 29 09:34:03 2013 +0300 Reduce the number of deleted objects to reduce the number of expected error prints --- src/tests/eo/suite/eo_test_general.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/tests/eo/suite/eo_test_general.c b/src/tests/eo/suite/eo_test_general.c index ceeed24..a9d0b2f 100644 --- a/src/tests/eo/suite/eo_test_general.c +++ b/src/tests/eo/suite/eo_test_general.c @@ -878,15 +878,15 @@ START_TEST(eo_pointers_indirection) if(!eo_isa(objs[obj_id], klass)) fail_if(!eo_isa(objs[obj_id], klass)); } - /* Deletion of half of the objects */ - for ( obj_id = 0; obj_id NB_OBJS; obj_id+=2) + /* Deletion of a few objects */ + for ( obj_id = 0; obj_id NB_OBJS; obj_id+=2000) { eo_unref(objs[obj_id]); if(eo_isa(objs[obj_id], klass)) fail_if(eo_isa(objs[obj_id], klass)); } - /* Creation of half of the objects */ - for ( obj_id = 0; obj_id NB_OBJS; obj_id+=2) + /* Creation of the deleted objects */ + for ( obj_id = 0; obj_id NB_OBJS; obj_id+=2000) { objs[obj_id] = eo_add(klass, NULL); if(!objs[obj_id]) --
[EGIT] [core/efl] master 01/02: Eo: fix when detaching the composite of its parent ... that has to exist
jackdanielz pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=334ac705f36e0f2a73c1a87cbd3ebe272e3b7ab6 commit 334ac705f36e0f2a73c1a87cbd3ebe272e3b7ab6 Author: Daniel Zaoui daniel.za...@samsung.com Date: Sun Sep 29 08:50:32 2013 +0300 Eo: fix when detaching the composite of its parent ... that has to exist --- src/lib/eo/eo_base_class.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c index 28b52d9..33f826a 100644 --- a/src/lib/eo/eo_base_class.c +++ b/src/lib/eo/eo_base_class.c @@ -121,7 +121,7 @@ _parent_set(Eo *obj, void *class_data, va_list *list) if (pd-parent == parent_id) return ; - if (eo_composite_is(obj)) + if (eo_composite_is(obj) pd-parent) { eo_composite_detach(obj, pd-parent); } --
[EGIT] [core/efl] master 01/01: evas/canvas - code refactoring. more clean code.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3b6961e17542d8940d6de9a08b9b820f1fe7a5f7 commit 3b6961e17542d8940d6de9a08b9b820f1fe7a5f7 Author: ChunEon Park her...@hermet.pe.kr Date: Sun Sep 29 17:30:55 2013 +0900 evas/canvas - code refactoring. more clean code. --- src/lib/evas/canvas/evas_object_smart.c | 19 +++ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/lib/evas/canvas/evas_object_smart.c b/src/lib/evas/canvas/evas_object_smart.c index b2d54c8..8f156c0 100644 --- a/src/lib/evas/canvas/evas_object_smart.c +++ b/src/lib/evas/canvas/evas_object_smart.c @@ -1221,11 +1221,13 @@ _smart_members_changed_check(Evas_Object *eo_obj, Evas_Object_Protected_Data *ob { Evas_Object_Protected_Data *o2; + if (!obj-changed) return EINA_FALSE; + if (!obj-smart.smart) return EINA_TRUE; + if (!evas_object_is_visible(eo_obj, obj) !evas_object_was_visible(eo_obj, obj)) return EINA_FALSE; - if (!obj-smart.smart) return EINA_TRUE; if (_evas_render_has_map(eo_obj, obj)) { if (((obj-changed_pchange) (obj-changed_map)) || @@ -1233,10 +1235,7 @@ _smart_members_changed_check(Evas_Object *eo_obj, Evas_Object_Protected_Data *ob } EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(eo_obj), o2) - { -if (!o2-changed) continue; -if (_smart_members_changed_check(o2-object, o2)) return EINA_TRUE; - } + if (_smart_members_changed_check(o2-object, o2)) return EINA_TRUE; return EINA_FALSE; } @@ -1246,18 +1245,14 @@ evas_object_smart_changed_get(Evas_Object *eo_obj) { Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJ_CLASS); Evas_Object_Protected_Data *o2; - Eina_Bool changed = EINA_FALSE; if (!obj-is_smart) return obj-changed; if (obj-changed_color) return EINA_TRUE; EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(eo_obj), o2) - { -if (!o2-changed) continue; -changed = _smart_members_changed_check(o2-object, o2); -if (changed) break; - } - return changed; + if (_smart_members_changed_check(o2-object, o2)) return EINA_TRUE; + + return EINA_FALSE; } void --
[EGIT] [core/elementary] master 01/01: elementary/mapbuf: Dont' move the content to not be calculated. Mapbuf expects the content is static object and it won't be updated by content position. This act
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=458b46544b5062212fdfb695607723a6c7a86ce5 commit 458b46544b5062212fdfb695607723a6c7a86ce5 Author: ChunEon Park her...@hermet.pe.kr Date: Sun Sep 29 18:57:10 2013 +0900 elementary/mapbuf: Dont' move the content to not be calculated. Mapbuf expects the content is static object and it won't be updated by content position. This actually reduces the mapbuf calculation time muchly in case of complex layout. --- ChangeLog| 7 +++ NEWS | 4 src/lib/elm_mapbuf.c | 53 3 files changed, 31 insertions(+), 33 deletions(-) diff --git a/ChangeLog b/ChangeLog index 884807c..7dc0c7a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1652,3 +1652,10 @@ 2013-09-27 ChunEon Park (Hermet) * layout: fixed the layout to swallow the contents again when theme is changed. + +2013-09-29 ChunEon Park (Hermet) + +* mapbuf: Dont' move the content to not be calculated. Mapbuf expects +the content is static object and it won't be updated by content +position. This actually reduces the mapbuf calculation time muchly in +case of complex layout. diff --git a/NEWS b/NEWS index a974127..d31e51a 100644 --- a/NEWS +++ b/NEWS @@ -141,6 +141,10 @@ Improvements: * Add hide effect for notify. * Widget: Improve performance in applying widget theme. It prevents applying themes more strictly if it tries to apply same theme. This increases the performance hugely in case that user applies a specific theme to the window object. * Flip now sets the focus to it's content object when flip go to is called while flip is focused. + * mapbuf: Dont' move the content to not be calculated. Mapbuf expects the + content is static object and it won't be updated by content position. + This actually reduces the mapbuf calculation time muchly in case of complex + layout. Fixes: * Now elm_datetime_field_limit_set() can set year limits wihtout problems. diff --git a/src/lib/elm_mapbuf.c b/src/lib/elm_mapbuf.c index 566bb96..dd8dee2 100644 --- a/src/lib/elm_mapbuf.c +++ b/src/lib/elm_mapbuf.c @@ -82,7 +82,7 @@ _elm_mapbuf_smart_sub_object_del(Eo *obj, void *_pd, va_list *list) } static void -_configure(Evas_Object *obj, Eina_Bool update_force) +_configure(Evas_Object *obj) { ELM_MAPBUF_DATA_GET(obj, sd); Elm_Widget_Smart_Data *wd = eo_data_scope_get(obj, ELM_OBJ_WIDGET_CLASS); @@ -91,33 +91,20 @@ _configure(Evas_Object *obj, Eina_Bool update_force) if (!sd-content) return; - Evas_Coord x, y, w, h, x2, y2, w2, h2; + Evas_Coord x, y, w, h; evas_object_geometry_get(wd-resize_obj, x, y, w, h); - evas_object_geometry_get(sd-content, x2, y2, w2, h2); - if ((update_force) || ((x != x2) || (y != y2) || (w != w2) || (h != h2))) + if (sd-enabled) { -if (sd-enabled) - { - Evas *e = evas_object_evas_get(obj); -/* This causes many side effects in calculating mapbuf objects. - But it doesn't affect to the mapbuf it's own special feature, performance. */ -// evas_smart_objects_calculate(e); - evas_nochange_push(e); - evas_object_move(sd-content, x, y); -// evas_smart_objects_calculate(e); - evas_nochange_pop(e); - - if (!m) m = evas_map_new(4); - evas_map_util_points_populate_from_geometry(m, x, y, w, h, 0); - evas_map_smooth_set(m, sd-smooth); - evas_map_alpha_set(m, sd-alpha); - evas_object_map_set(sd-content, m); - evas_object_map_enable_set(sd-content, EINA_TRUE); - } -else - evas_object_move(sd-content, x, y); +if (!m) m = evas_map_new(4); +evas_map_util_points_populate_from_geometry(m, x, y, w, h, 0); +evas_map_smooth_set(m, sd-smooth); +evas_map_alpha_set(m, sd-alpha); +evas_object_map_set(sd-content, m); +evas_object_map_enable_set(sd-content, EINA_TRUE); } + else + evas_object_move(sd-content, x, y); } static void @@ -165,7 +152,7 @@ _elm_mapbuf_smart_move(Eo *obj, void *_pd, va_list *list) _mapbuf_auto_eval(obj, _pd); _mapbuf_auto_smooth(obj, _pd); - _configure(obj, EINA_FALSE); + _configure(obj); } static void @@ -178,7 +165,7 @@ _elm_mapbuf_smart_resize(Eo *obj, void *_pd, va_list *list) ELM_MAPBUF_DATA_GET(obj, sd); if (sd-content) evas_object_resize(sd-content, w, h); _mapbuf_auto_eval(obj, _pd); - _configure(obj, EINA_FALSE); + _configure(obj); } static void @@ -187,7 +174,7 @@ _elm_mapbuf_smart_show(Eo *obj, void *_pd, va_list *list EINA_UNUSED) eo_do_super(obj, MY_CLASS, evas_obj_smart_show()); _mapbuf_auto_eval(obj, _pd); - _configure(obj, EINA_FALSE); + _configure(obj); } static void @@ -196,7 +183,7 @@ _elm_mapbuf_smart_hide(Eo *obj, void
Re: [E-devel] Tests failure in EFL
Doesn't happen on Jenkins, and I can't test it locally at the moment. Could you please give us more info about your setup, and possibly even bisect to find the offending commit? On Sun, Sep 29, 2013 at 7:20 AM, daniel.za...@samsung.com daniel.za...@samsung.com wrote: Hi all, Just for your information, there is some test failing in Eina suite: ~/e17/efl$ src/tests/eina/eina_suite ustr test Running suite(s): Eina Max delta(multiplication): 0.007610 (0.729521%) Max delta(division): 0.000757 (1.463794%) # specimen experiment time starting time ending time 10 7422404 541979 7964383 20 6319338 7964904 14284242 this is a test of clists - hello world Run specimens_check: 1000 0123456789 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 98%: Checks: 152, Failures: 2, Errors: 0 tests/eina/eina_test_value.c:1343:F:Value:eina_value_test_convert_int:0: Assertion 'CHECK_FP(f, max_positive_signed_4_bytes)' failed tests/eina/eina_test_value.c:1453:F:Value:eina_value_test_convert_uint:0: Assertion 'CHECK_FP(f, max_positive_unsigned_4_bytes)' failed Daniel -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60133471iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60133471iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/02: evas: let's micro optimize the parsing of format.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5d37215d261da2cb6b42070e8608cdec702d8269 commit 5d37215d261da2cb6b42070e8608cdec702d8269 Author: Cedric BAIL ced...@efl.so Date: Sun Sep 29 13:14:22 2013 +0200 evas: let's micro optimize the parsing of format. Only the key is worth being a stringshare as it is used to do an efficient binary comparison instead of iterating over all possibility. Also reused some already known value and a few other speedup. --- src/lib/evas/canvas/evas_object_textblock.c | 315 1 file changed, 182 insertions(+), 133 deletions(-) diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c index cf242fe..37bd6a3 100644 --- a/src/lib/evas/canvas/evas_object_textblock.c +++ b/src/lib/evas/canvas/evas_object_textblock.c @@ -1028,11 +1028,8 @@ _hex_string_get(char ch) * @param[out] a The Alpha value - NOT NULL. */ static void -_format_color_parse(const char *str, unsigned char *r, unsigned char *g, unsigned char *b, unsigned char *a) +_format_color_parse(const char *str, int slen, unsigned char *r, unsigned char *g, unsigned char *b, unsigned char *a) { - int slen; - - slen = strlen(str); *r = *g = *b = *a = 0; if (slen == 7) /* #RRGGBB */ @@ -1277,19 +1274,22 @@ _format_command_shutdown(void) * @param[out] dst the destination string - Should not be NULL. * @param[in] src the source string - Should not be NULL. */ -static void -_format_clean_param(char *dst, const char *src) +static int +_format_clean_param(Eina_Tmpstr *s) { - const char *ss; + Eina_Tmpstr *ss; char *ds; + int len = 0; - ds = dst; - for (ss = src; *ss; ss++, ds++) + ds = (char*) s; + for (ss = s; *ss; ss++, ds++, len++) { if ((*ss == '\\') *(ss + 1)) ss++; -*ds = *ss; +if (ds != ss) *ds = *ss; } *ds = 0; + + return len; } /** @@ -1302,15 +1302,11 @@ _format_clean_param(char *dst, const char *src) * @param[in] param the parameter of the command. */ static void -_format_command(Evas_Object *eo_obj, Evas_Object_Textblock_Format *fmt, const char *cmd, const char *param) +_format_command(Evas_Object *eo_obj, Evas_Object_Textblock_Format *fmt, const char *cmd, Eina_Tmpstr *param) { int len; - char *tmp_param; - - len = strlen(param); - tmp_param = alloca(len + 1); - _format_clean_param(tmp_param, param); + len = _format_clean_param(param); /* If we are changing the font, create the fdesc. */ if ((cmd == font_weightstr) || (cmd == font_widthstr) || @@ -1342,7 +1338,7 @@ _format_command(Evas_Object *eo_obj, Evas_Object_Textblock_Format *fmt, const ch * font=font name * @endcode */ -evas_font_name_parse(fmt-font.fdesc, tmp_param); +evas_font_name_parse(fmt-font.fdesc, param); } else if (cmd == font_fallbacksstr) { @@ -1357,7 +1353,7 @@ _format_command(Evas_Object *eo_obj, Evas_Object_Textblock_Format *fmt, const ch * font_fallbacks=font name * @endcode */ -eina_stringshare_replace((fmt-font.fdesc-fallbacks), tmp_param); +eina_stringshare_replace((fmt-font.fdesc-fallbacks), param); } else if (cmd == font_sizestr) { @@ -1373,7 +1369,7 @@ _format_command(Evas_Object *eo_obj, Evas_Object_Textblock_Format *fmt, const ch */ int v; -v = atoi(tmp_param); +v = atoi(param); if (v != fmt-font.size) { fmt-font.size = v; @@ -1392,10 +1388,9 @@ _format_command(Evas_Object *eo_obj, Evas_Object_Textblock_Format *fmt, const ch * @endcode */ if ((!fmt-font.source) || - ((fmt-font.source) (strcmp(fmt-font.source, tmp_param + ((fmt-font.source) (strcmp(fmt-font.source, param { - if (fmt-font.source) eina_stringshare_del(fmt-font.source); - fmt-font.source = eina_stringshare_add(tmp_param); + eina_stringshare_replace((fmt-font.source), param); } } else if (cmd == font_weightstr) @@ -1421,8 +1416,9 @@ _format_command(Evas_Object *eo_obj, Evas_Object_Textblock_Format *fmt, const ch * font_weight=weight * @endcode */ -fmt-font.fdesc-weight = evas_font_style_find(tmp_param, - tmp_param + strlen(tmp_param), EVAS_FONT_STYLE_WEIGHT); +fmt-font.fdesc-weight = evas_font_style_find(param, + param + len, + EVAS_FONT_STYLE_WEIGHT); } else if (cmd == font_stylestr) { @@ -1439,8 +1435,9 @@ _format_command(Evas_Object *eo_obj, Evas_Object_Textblock_Format *fmt, const ch * font_style=style * @endcode */ -fmt-font.fdesc-slant =
[EGIT] [core/efl] master 02/02: evas: let's inline data to get a little speedup when matching kerning.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5f630e865346b9de765bf1f74aca1d8a760ce5bc commit 5f630e865346b9de765bf1f74aca1d8a760ce5bc Author: Cedric BAIL ced...@efl.so Date: Sun Sep 29 13:14:45 2013 +0200 evas: let's inline data to get a little speedup when matching kerning. --- src/lib/evas/common/evas_font_query.c | 12 +++- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/lib/evas/common/evas_font_query.c b/src/lib/evas/common/evas_font_query.c index b2a63c0..eebab70 100644 --- a/src/lib/evas/common/evas_font_query.c +++ b/src/lib/evas/common/evas_font_query.c @@ -175,12 +175,14 @@ evas_common_font_query_kerning(RGBA_Font_Int *fi, FT_UInt left, FT_UInt right, int *result; FT_Vector delta; int key[2]; + int hash; int error = 1; key[0] = left; key[1] = right; + hash = eina_hash_int32(left, sizeof (int)) ^ eina_hash_int32(right, sizeof (int)); - result = eina_hash_find(fi-kerning, key); + result = eina_hash_find_by_hash(fi-kerning, key, sizeof (int) * 2, hash); if (result) { *kerning = result[2]; @@ -194,7 +196,7 @@ evas_common_font_query_kerning(RGBA_Font_Int *fi, FT_UInt left, FT_UInt right, evas_common_font_int_reload(fi); FTLOCK(); if (FT_Get_Kerning(fi-src-ft.face, - key[0], key[1], + left, right, FT_KERNING_DEFAULT, delta) == 0) { int *push; @@ -205,11 +207,11 @@ evas_common_font_query_kerning(RGBA_Font_Int *fi, FT_UInt left, FT_UInt right, push = malloc(sizeof (int) * 3); if (!push) return 1; - push[0] = key[0]; - push[1] = key[1]; + push[0] = left; + push[1] = right; push[2] = *kerning; - eina_hash_direct_add(fi-kerning, push, push); + eina_hash_direct_add_by_hash(fi-kerning, push, sizeof(int) * 2, hash, push); goto on_correct; } --
Re: [E-devel] Tests failure in EFL
On my computer at work, it fails. At home, it is ok. Same Ubuntu, same check version, same EFL latest. I printed the values checked, they are the same at home and at work. f = 2147483648.00 max = 2147483647 I checked out to the first version of the function and it still fails. It doesn't seem the problem is in the code. On 09/29/2013 02:39 PM, Tom Hacohen wrote: Doesn't happen on Jenkins, and I can't test it locally at the moment. Could you please give us more info about your setup, and possibly even bisect to find the offending commit? On Sun, Sep 29, 2013 at 7:20 AM, daniel.za...@samsung.com daniel.za...@samsung.com wrote: Hi all, Just for your information, there is some test failing in Eina suite: ~/e17/efl$ src/tests/eina/eina_suite ustr test Running suite(s): Eina Max delta(multiplication): 0.007610 (0.729521%) Max delta(division): 0.000757 (1.463794%) # specimen experiment time starting time ending time 10 7422404 541979 7964383 20 6319338 7964904 14284242 this is a test of clists - hello world Run specimens_check: 1000 0123456789 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 98%: Checks: 152, Failures: 2, Errors: 0 tests/eina/eina_test_value.c:1343:F:Value:eina_value_test_convert_int:0: Assertion 'CHECK_FP(f, max_positive_signed_4_bytes)' failed tests/eina/eina_test_value.c:1453:F:Value:eina_value_test_convert_uint:0: Assertion 'CHECK_FP(f, max_positive_unsigned_4_bytes)' failed Daniel -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60133471iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60133471iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60133471iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/elementary] master 01/01: elementary/naviframe.c : Because naviframe is focusable, it should set focus to itself when the new item is unfocusable.
woohyun pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=b216de22610fd8831f03fd9fd32b9f4ffdd20c30 commit b216de22610fd8831f03fd9fd32b9f4ffdd20c30 Author: WooHyun Jung wh0705.j...@samsung.com Date: Mon Sep 30 10:09:23 2013 +0900 elementary/naviframe.c : Because naviframe is focusable, it should set focus to itself when the new item is unfocusable. --- src/lib/elc_naviframe.c | 30 +- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/src/lib/elc_naviframe.c b/src/lib/elc_naviframe.c index d3fc708..a81e255 100644 --- a/src/lib/elc_naviframe.c +++ b/src/lib/elc_naviframe.c @@ -69,7 +69,12 @@ _prev_page_focus_recover(Elm_Naviframe_Item *it) if (newest) elm_object_focus_set(newest, EINA_TRUE); else - elm_object_focus_set(VIEW(it), EINA_TRUE); + { +if (elm_object_focus_allow_get(VIEW(it))) + elm_object_focus_set(VIEW(it), EINA_TRUE); +else + elm_object_focus_set(WIDGET(it), EINA_TRUE); + } } static void @@ -1260,7 +1265,7 @@ _elm_naviframe_smart_focus_next(Eo *obj, void *_pd EINA_UNUSED, va_list *list) Eina_Bool int_ret; top_it = (Elm_Naviframe_Item *)elm_naviframe_top_item_get(obj); - if (!top_it) return; + if (!top_it) goto end; list_data_get = eina_list_data_get; @@ -1274,8 +1279,15 @@ _elm_naviframe_smart_focus_next(Eo *obj, void *_pd EINA_UNUSED, va_list *list) } int_ret = elm_widget_focus_list_next_get(obj, l, list_data_get, dir, next); - if (ret) *ret = int_ret; eina_list_free(l); + if (ret) *ret = int_ret; + +end: + if (!*ret) + { +*next = obj; +*ret = !elm_widget_focus_get(obj); + } } static void @@ -1521,7 +1533,12 @@ _item_push(Eo *obj, void *_pd, va_list *list) it-animator = ecore_animator_add(_push_transition_cb, it); } else - elm_object_focus_set(VIEW(it), EINA_TRUE); + { +if (elm_object_focus_allow_get(VIEW(it))) + elm_object_focus_set(VIEW(it), EINA_TRUE); +else + elm_object_focus_set(WIDGET(it), EINA_TRUE); + } sd-stack = eina_inlist_append(sd-stack, EINA_INLIST_GET(it)); @@ -1629,7 +1646,10 @@ _item_insert_after(Eo *obj, void *_pd, va_list *list) EINA_FALSE); evas_object_show(VIEW(it)); evas_object_hide(VIEW(after)); -elm_object_focus_set(VIEW(it), EINA_TRUE); +if (elm_object_focus_allow_get(VIEW(it))) + elm_object_focus_set(VIEW(it), EINA_TRUE); +else + elm_object_focus_set(WIDGET(it), EINA_TRUE); } elm_layout_sizing_eval(obj); --