[EGIT] [enlightenment/modules/desksanity] master 02/03: make pip move/resize while clipped more accurate based on clip geometry
discomfitor pushed a commit to branch master. http://git.enlightenment.org/enlightenment/modules/desksanity.git/commit/?id=7c90ff81360aeff9de19a4cb7179c5226aad7b2b commit 7c90ff81360aeff9de19a4cb7179c5226aad7b2b Author: Mike BlumenkrantzDate: Wed Dec 2 13:40:58 2015 -0500 make pip move/resize while clipped more accurate based on clip geometry --- src/pip.c | 145 ++ 1 file changed, 90 insertions(+), 55 deletions(-) diff --git a/src/pip.c b/src/pip.c index 21d4177..09fdc1a 100644 --- a/src/pip.c +++ b/src/pip.c @@ -78,6 +78,66 @@ pip_free(Pip *pip) free(pip); } +static void +_pip_resize(Pip *pip, int *ox, int *oy, int *ow, int *oh, Ecore_Event_Mouse_Move *ev) +{ + int x, y, w, h; + + x = *ox, y = *oy, w = *ow, h = *oh; + + if ((pip->resize_mode == E_POINTER_RESIZE_B) || + (pip->resize_mode == E_POINTER_RESIZE_BL) || + (pip->resize_mode == E_POINTER_RESIZE_BR)) + h = MAX(e_comp_canvas_y_root_adjust(ev->root.y) - y, 5); + else if ((pip->resize_mode == E_POINTER_RESIZE_T) || + (pip->resize_mode == E_POINTER_RESIZE_TL) || + (pip->resize_mode == E_POINTER_RESIZE_TR)) + { +h = MAX((y + h) - (e_comp_canvas_y_root_adjust(ev->root.y) - pip->down.y), 5); +y = e_comp_canvas_y_root_adjust(ev->root.y) - pip->down.y; + } + if ((pip->resize_mode == E_POINTER_RESIZE_R) || + (pip->resize_mode == E_POINTER_RESIZE_TR) || + (pip->resize_mode == E_POINTER_RESIZE_BR)) + w = MAX(e_comp_canvas_x_root_adjust(ev->root.x) - x, 5); + else if ((pip->resize_mode == E_POINTER_RESIZE_L) || + (pip->resize_mode == E_POINTER_RESIZE_TL) || + (pip->resize_mode == E_POINTER_RESIZE_BL)) + { +w = MAX((x + w) - (e_comp_canvas_x_root_adjust(ev->root.x) - pip->down.x), 5); +x = e_comp_canvas_x_root_adjust(ev->root.x) - pip->down.x; + } + { + E_Client *ec; + + ec = evas_object_data_get(pip->pip, "E_Client"); + switch (pip->resize_mode) +{ + case E_POINTER_RESIZE_TL: + case E_POINTER_RESIZE_TR: + case E_POINTER_RESIZE_BR: + case E_POINTER_RESIZE_BL: + if (abs(e_comp_canvas_x_root_adjust(ev->root.x) - pip->down.x) > abs(e_comp_canvas_y_root_adjust(ev->root.y) - pip->down.y)) + h = (ec->h * w) / ec->w; + else + w = (ec->w * h) / ec->h; + break; + + case E_POINTER_RESIZE_T: + case E_POINTER_RESIZE_B: + w = (ec->w * h) / ec->h; + break; + + case E_POINTER_RESIZE_R: + case E_POINTER_RESIZE_L: + h = (ec->h * w) / ec->w; + break; + default: break; +} + } + *ox = x, *oy = y, *ow = w, *oh = h; +} + static Eina_Bool _pip_mouse_move(Pip *pip, int t EINA_UNUSED, Ecore_Event_Mouse_Move *ev) { @@ -86,63 +146,35 @@ _pip_mouse_move(Pip *pip, int t EINA_UNUSED, Ecore_Event_Mouse_Move *ev) evas_object_geometry_get(pip->pip, , , , ); if (pip->resize) { -if ((pip->resize_mode == E_POINTER_RESIZE_B) || -(pip->resize_mode == E_POINTER_RESIZE_BL) || -(pip->resize_mode == E_POINTER_RESIZE_BR)) - h = MAX(e_comp_canvas_y_root_adjust(ev->root.y) - y, 5); -else if ((pip->resize_mode == E_POINTER_RESIZE_T) || -(pip->resize_mode == E_POINTER_RESIZE_TL) || -(pip->resize_mode == E_POINTER_RESIZE_TR)) - { - h = MAX((y + h) - (e_comp_canvas_y_root_adjust(ev->root.y) - pip->down.y), 5); - y = e_comp_canvas_y_root_adjust(ev->root.y) - pip->down.y; - } -if ((pip->resize_mode == E_POINTER_RESIZE_R) || -(pip->resize_mode == E_POINTER_RESIZE_TR) || -(pip->resize_mode == E_POINTER_RESIZE_BR)) - w = MAX(e_comp_canvas_x_root_adjust(ev->root.x) - x, 5); -else if ((pip->resize_mode == E_POINTER_RESIZE_L) || -(pip->resize_mode == E_POINTER_RESIZE_TL) || -(pip->resize_mode == E_POINTER_RESIZE_BL)) +_pip_resize(pip, , , , , ev); +evas_object_geometry_set(pip->pip, x, y, w, h); +if (pip->clip) { - w = MAX((x + w) - (e_comp_canvas_x_root_adjust(ev->root.x) - pip->down.x), 5); - x = e_comp_canvas_x_root_adjust(ev->root.x) - pip->down.x; + evas_object_geometry_get(pip->clip, , , , ); + _pip_resize(pip, , , , , ev); + evas_object_geometry_set(pip->clip, x, y, w, h); } -{ - E_Client *ec; - - ec = evas_object_data_get(pip->pip, "E_Client"); - switch (pip->resize_mode) - { - case E_POINTER_RESIZE_TL: - case E_POINTER_RESIZE_TR: - case E_POINTER_RESIZE_BR: - case E_POINTER_RESIZE_BL: -if (abs(e_comp_canvas_x_root_adjust(ev->root.x) - pip->down.x) >
[EGIT] [enlightenment/modules/desksanity] master 03/03: enable pip edit mode when creating a pip
discomfitor pushed a commit to branch master. http://git.enlightenment.org/enlightenment/modules/desksanity.git/commit/?id=c82393c2a490e201fc2f66228d4368a3df3f08c2 commit c82393c2a490e201fc2f66228d4368a3df3f08c2 Author: Mike BlumenkrantzDate: Wed Dec 2 13:41:17 2015 -0500 enable pip edit mode when creating a pip this is the normal use case so do it automatically --- src/pip.c | 8 1 file changed, 8 insertions(+) diff --git a/src/pip.c b/src/pip.c index 09fdc1a..793c81d 100644 --- a/src/pip.c +++ b/src/pip.c @@ -381,6 +381,14 @@ _pip_create(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *mi EINA_UNUSED) efx_fade(o, EFX_EFFECT_SPEED_LINEAR, EFX_COLOR(255, 255, 255), 255, 0.2, _pip_fade_end, NULL); eina_hash_add(pips, >frame, pip); + if (editing) + { +evas_object_layer_set(pip->pip, E_LAYER_MENU + 1); +evas_object_pass_events_set(pip->pip, 0); +e_comp_shape_queue(); + } + else + pips_edit(); } static void --
[EGIT] [core/efl] master 02/02: evas: properly clean up all memory.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d577366acb77f6e99c93fd748bedbb77cc7936a6 commit d577366acb77f6e99c93fd748bedbb77cc7936a6 Author: Cedric BAILDate: Wed Dec 2 12:30:04 2015 -0800 evas: properly clean up all memory. --- src/lib/evas/canvas/evas_object_textblock.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c index 30cfb91..df4734a 100644 --- a/src/lib/evas/canvas/evas_object_textblock.c +++ b/src/lib/evas/canvas/evas_object_textblock.c @@ -667,8 +667,10 @@ _evas_textblock_selection_iterator_get_container(Evas_Textblock_Selection_Iterat static void _evas_textblock_selection_iterator_free(Evas_Textblock_Selection_Iterator *it) { - while (it->list) - it->list = eina_list_remove_list(it->list, it->list); + Evas_Textblock_Rectangle *tr; + + EINA_LIST_FREE(it->list, tr) + free(tr); EINA_MAGIC_SET(>iterator, 0); free(it); } --
[EGIT] [core/efl] master 01/02: evas: fix double free.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=11ac6b145d826159b6d336964a965d330127c4cb commit 11ac6b145d826159b6d336964a965d330127c4cb Author: Cedric BAILDate: Wed Dec 2 12:27:25 2015 -0800 evas: fix double free. The ownership of this list and its content belong to the iterator. This code was actively double freeing and our test suite doesn't crash or have any issue... Well actually it was complaining that the list had error, but due to our other false positive test that do trigger eina log, we continuously ignored this error. NOTE: The fact that the test rely also on the container of the iterator instead of the iterator itself is not that great to. I kind of feel bad now for having allowed access to the container. We should have been able to allow changing the logic to generate those rectangle step after step instead of in one go. Now this seems difficult. --- src/tests/evas/evas_test_textblock.c | 14 -- 1 file changed, 14 deletions(-) diff --git a/src/tests/evas/evas_test_textblock.c b/src/tests/evas/evas_test_textblock.c index a14f599..b529fcb 100644 --- a/src/tests/evas/evas_test_textblock.c +++ b/src/tests/evas/evas_test_textblock.c @@ -2429,10 +2429,6 @@ START_TEST(evas_textblock_geometries) fail_if((tr->x != tr2->x) || (tr->y != tr2->y) || (tr->w != tr2->w) || (tr->h != tr2->h)); - EINA_LIST_FREE(rects, tr) - free(tr); - EINA_LIST_FREE(rects2, tr2) - free(tr2); eina_iterator_free(it); eina_iterator_free(it2); @@ -2542,10 +2538,6 @@ START_TEST(evas_textblock_geometries) tr3 = eina_list_nth(rects, 3); fail_if((tr2->x != tr3->x)); - EINA_LIST_FREE(rects, tr) - free(tr); - EINA_LIST_FREE(rects2, tr2) - free(tr2); eina_iterator_free(it); eina_iterator_free(it2); @@ -2561,8 +2553,6 @@ START_TEST(evas_textblock_geometries) fail_if(eina_list_count(rects) != 2); - EINA_LIST_FREE(rects, tr) - free(tr); eina_iterator_free(it); /* Same run different styles */ @@ -2576,8 +2566,6 @@ START_TEST(evas_textblock_geometries) fail_if(eina_list_count(rects) != 3); - EINA_LIST_FREE(rects, tr) - free(tr); eina_iterator_free(it); /* Bidi text with a few back and forth from bidi. */ @@ -2592,8 +2580,6 @@ START_TEST(evas_textblock_geometries) ck_assert_int_eq(eina_list_count(rects), 3); - EINA_LIST_FREE(rects, tr) - free(tr); eina_iterator_free(it); END_TB_TEST(); --
[EGIT] [enlightenment/modules/desksanity] master 02/03: add multipress functionality for superkey
discomfitor pushed a commit to branch master. http://git.enlightenment.org/enlightenment/modules/desksanity.git/commit/?id=26bf74f9912ed77109f08f8e1b8eff94833d96f3 commit 26bf74f9912ed77109f08f8e1b8eff94833d96f3 Author: Mike BlumenkrantzDate: Mon Nov 9 15:58:17 2015 -0500 add multipress functionality for superkey iterate through the focus chain by repeatedly pressing the superkey --- src/e_mod_main.c | 65 ++-- 1 file changed, 63 insertions(+), 2 deletions(-) diff --git a/src/e_mod_main.c b/src/e_mod_main.c index 830122b..5dad574 100644 --- a/src/e_mod_main.c +++ b/src/e_mod_main.c @@ -13,6 +13,8 @@ static Eina_List *urgent; static Eina_List *focus_list; static Eina_List *handlers; +static Ecore_Timer *ds_key_focus_timeout; +static Eina_List *ds_key_focus_desks; static void _ds_fade_end(Ecore_Cb cb, Efx_Map_Data *emd EINA_UNUSED, Evas_Object *obj EINA_UNUSED) @@ -75,23 +77,80 @@ ds_client_urgent_pop(E_Client *ec) return !!e_object_unref(E_OBJECT(ec)) ? ec : NULL; } +static Eina_List * +ds_key_list_init(const E_Zone *zone) +{ + int i; + Eina_List *desks = NULL; + + for (i = 0; i < zone->desk_x_count * zone->desk_y_count; i++) + { +if (zone->desks[i]->visible) continue; +e_object_ref(E_OBJECT(zone->desks[i])); +desks = eina_list_append(desks, zone->desks[i]); + } + return desks; +} + +static Eina_Bool +ds_key_focus_timeout_cb(void *d EINA_UNUSED) +{ + E_Client *ec; + + e_client_focus_track_thaw(); + ec = e_client_focused_get(); + if (ec) + e_client_focus_latest_set(ec); + ds_key_focus_timeout = NULL; + E_FREE_LIST(ds_key_focus_desks, e_object_unref); + return EINA_FALSE; +} + static void ds_key_focus(void) { Eina_List *l; E_Client *ec; E_Zone *focus_zone = NULL; + static double last; + double t = 0.0; + Eina_Bool skip = EINA_FALSE; if (!focus_list) - focus_zone = e_zone_current_get(); + { +focus_zone = e_zone_current_get(); +if (!ds_key_focus_desks) + ds_key_focus_desks = ds_key_list_init(focus_zone); +if (!ds_key_focus_timeout) + { + e_client_focus_track_freeze(); + ds_key_focus_timeout = ecore_timer_add(0.25, ds_key_focus_timeout_cb, NULL); + } +t = ecore_time_unix_get(); +skip = (t - last < 0.25); +if (skip) + ecore_timer_reset(ds_key_focus_timeout); + } + else + { +E_FREE_FUNC(ds_key_focus_timeout, ecore_timer_del); +E_FREE_LIST(ds_key_focus_desks, e_object_unref); +e_client_focus_track_thaw(); + } EINA_LIST_FOREACH(focus_list ?: e_client_focus_stack_get(), l, ec) if ((!ec->iconic) && (!ec->focused) && - ((!focus_zone) || ((ec->zone == focus_zone) && (!ec->desk->visible + ((!focus_zone) || ((ec->zone == focus_zone) && eina_list_data_find(ds_key_focus_desks, ec->desk { + if (ds_key_focus_desks) +{ + ds_key_focus_desks = eina_list_remove(ds_key_focus_desks, ec->desk); + e_object_unref(E_OBJECT(ec->desk)); +} e_client_activate(ec, 1); break; } + last = t; focus_list = eina_list_free(focus_list); } @@ -205,6 +264,8 @@ e_modapi_shutdown(E_Module *m EINA_UNUSED) E_FREE_LIST(handlers, ecore_event_handler_del); E_FREE_LIST(urgent, e_object_unref); focus_list = eina_list_free(focus_list); + E_FREE_FUNC(ds_key_focus_timeout, ecore_timer_del); + E_FREE_LIST(ds_key_focus_desks, e_object_unref); //efx_shutdown(); broken... return 1; } --
[EGIT] [enlightenment/modules/desksanity] master 03/03: add handling for maintaining sticky windows with superkey
discomfitor pushed a commit to branch master. http://git.enlightenment.org/enlightenment/modules/desksanity.git/commit/?id=6a21290dcd3dad4a495c0953dc93995b5eb4c229 commit 6a21290dcd3dad4a495c0953dc93995b5eb4c229 Author: Mike BlumenkrantzDate: Thu Nov 12 17:51:30 2015 -0500 add handling for maintaining sticky windows with superkey manage sticky windows based on their last-used desk when flipping --- src/e_mod_main.c | 30 ++ 1 file changed, 30 insertions(+) diff --git a/src/e_mod_main.c b/src/e_mod_main.c index 5dad574..449d653 100644 --- a/src/e_mod_main.c +++ b/src/e_mod_main.c @@ -16,6 +16,9 @@ static Eina_List *handlers; static Ecore_Timer *ds_key_focus_timeout; static Eina_List *ds_key_focus_desks; +static Eina_Bool focus_last_focused_per_desktop; +static unsigned int pending_flip; + static void _ds_fade_end(Ecore_Cb cb, Efx_Map_Data *emd EINA_UNUSED, Evas_Object *obj EINA_UNUSED) { @@ -147,6 +150,23 @@ ds_key_focus(void) ds_key_focus_desks = eina_list_remove(ds_key_focus_desks, ec->desk); e_object_unref(E_OBJECT(ec->desk)); } + if (!pending_flip) +focus_last_focused_per_desktop = e_config->focus_last_focused_per_desktop; + if (!ec->desk->visible) +{ + e_config->focus_last_focused_per_desktop = 0; + pending_flip++; +} + if (ec->sticky) +{ + E_Client *tec; + + E_CLIENT_FOREACH(tec) + if ((!tec->sticky) && (tec->desk == ec->desk)) break; + /* do not flip to a sticky window if there are no other windows on its desk */ + if ((!tec) || (tec->desk != ec->desk)) continue; + e_desk_show(ec->desk); +} e_client_activate(ec, 1); break; } @@ -178,6 +198,15 @@ ds_key(E_Object *obj EINA_UNUSED, const char *params EINA_UNUSED) } static Eina_Bool +ds_desk_after_show(void *d EINA_UNUSED, int t EINA_UNUSED, E_Event_Desk_After_Show *ev EINA_UNUSED) +{ + if (pending_flip) + pending_flip--, + e_config->focus_last_focused_per_desktop = focus_last_focused_per_desktop; + return ECORE_CALLBACK_RENEW; +} + +static Eina_Bool ds_client_remove(void *d EINA_UNUSED, int t EINA_UNUSED, E_Event_Client *ev) { ds_client_urgent_pop(ev->ec); @@ -233,6 +262,7 @@ e_modapi_init(E_Module *m) E_LIST_HANDLER_APPEND(handlers, E_EVENT_CLIENT_PROPERTY, ds_client_urgent, NULL); E_LIST_HANDLER_APPEND(handlers, E_EVENT_CLIENT_REMOVE, ds_client_remove, NULL); + E_LIST_HANDLER_APPEND(handlers, E_EVENT_DESK_AFTER_SHOW, ds_desk_after_show, NULL); act = e_action_add("ds_key"); e_action_predef_name_set(D_("Desksanity"), D_("Manage Window Focus For Me"), "ds_key", NULL, NULL, 0); --
[EGIT] [core/efl] master 05/05: evas: set visible texcolorpick texture in 3D shaders
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e82baf2703a5988436decba5260f32e948e65fc2 commit e82baf2703a5988436decba5260f32e948e65fc2 Author: Oleksandr ShcherbinaDate: Wed Dec 2 14:47:28 2015 -0800 evas: set visible texcolorpick texture in 3D shaders Summary: Add uniform varialble uColorTexture. Generate sampler count for textcolorpick and pass to renderer for bind additional texture unit to gl. It can be used for different 3D effects - blur, wave distortion, heat haze, etc. T2761 Reviewers: Hermet, raster, cedric Reviewed By: cedric Differential Revision: https://phab.enlightenment.org/D3372 Signed-off-by: Cedric BAIL --- src/modules/evas/engines/gl_common/evas_gl_3d.c | 15 +++ .../evas/engines/gl_common/evas_gl_3d_private.h | 5 - .../evas/engines/gl_common/evas_gl_3d_renderer.c| 21 - .../evas/engines/gl_common/evas_gl_3d_shader.c | 5 + 4 files changed, 40 insertions(+), 6 deletions(-) diff --git a/src/modules/evas/engines/gl_common/evas_gl_3d.c b/src/modules/evas/engines/gl_common/evas_gl_3d.c index 357039c..4cb6887 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_3d.c +++ b/src/modules/evas/engines/gl_common/evas_gl_3d.c @@ -1122,13 +1122,19 @@ _mesh_draw_data_build(E3D_Draw_Data *data, _light_build(data, light, matrix_eye); eina_normal3_matrix_get(>matrix_normal, matrix_mv); } - - int num; + /*Check possible quantity of texture units*/ + int num, count = 0; glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, ); data->smap_sampler = num - 1; - if (data->texture_count >= num) - if ((data->flags & E3D_SHADER_FLAG_SHADOWED) || (data->texture_count > num)) + if (data->render_to_texture) + { +count++; +data->colortex_sampler = num - (count + 1); + } + if (data->texture_count + count >= num) + if ((data->flags & E3D_SHADER_FLAG_SHADOWED) || + (data->texture_count + count > num)) { ERR("Too many textures for your graphics configuration."); return EINA_FALSE; @@ -1144,6 +1150,7 @@ _mesh_draw(E3D_Renderer *renderer, Evas_Canvas3D_Mesh *mesh, int frame, Evas_Can E3D_Draw_Data data; memset(, 0x00, sizeof(E3D_Draw_Data)); + data.render_to_texture = e3d_renderer_rendering_to_texture_get(renderer); if (_mesh_draw_data_build(, mesh, frame, matrix_eye, matrix_mv, matrix_mvp, matrix_light, light)) e3d_renderer_draw(renderer, ); diff --git a/src/modules/evas/engines/gl_common/evas_gl_3d_private.h b/src/modules/evas/engines/gl_common/evas_gl_3d_private.h index 56f98c1..9478093 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_3d_private.h +++ b/src/modules/evas/engines/gl_common/evas_gl_3d_private.h @@ -87,6 +87,7 @@ struct _E3D_Draw_Data Evas_Real shininess; GLint smap_sampler; + GLint colortex_sampler; Evas_Canvas3D_Blend_Func blend_sfactor; Evas_Canvas3D_Blend_Func blend_dfactor; Eina_Bool blending : 1; @@ -111,6 +112,8 @@ struct _E3D_Draw_Data Evas_Real pcf_step; Evas_Real pcf_size; Evas_Real constant_bias; + + Eina_Bool render_to_texture; }; struct _E3D_Texture @@ -171,5 +174,5 @@ void e3d_renderer_clear(E3D_Renderer *renderer, const Evas_Color void e3d_renderer_draw(E3D_Renderer *renderer, E3D_Draw_Data *data); void e3d_renderer_flush(E3D_Renderer *renderer); void e3d_renderer_color_pick_target_set(E3D_Renderer *renderer, E3D_Drawable *drawable); - +Eina_Boole3d_renderer_rendering_to_texture_get(E3D_Renderer *renderer); #endif /* EVAS_GL_3D_PRIVATE_H */ diff --git a/src/modules/evas/engines/gl_common/evas_gl_3d_renderer.c b/src/modules/evas/engines/gl_common/evas_gl_3d_renderer.c index aff604c..05e6e97 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_3d_renderer.c +++ b/src/modules/evas/engines/gl_common/evas_gl_3d_renderer.c @@ -15,7 +15,10 @@ struct _E3D_Renderer Eina_Bool vertex_attrib_enable[E3D_MAX_VERTEX_ATTRIB_COUNT]; Eina_Bool depth_test_enable; GLuint texDepth; - GLint smap_sampler; + GLint smap_sampler; + Eina_Bool render_to_texture; + GLuint texcolorpick; + GLint colortex_sampler; }; static inline GLenum @@ -208,6 +211,12 @@ _renderer_texture_bind(E3D_Renderer *renderer, E3D_Draw_Data *data) glBindTexture(GL_TEXTURE_2D, renderer->texDepth); renderer->smap_sampler = data->smap_sampler; } + if (renderer->render_to_texture) + { +glActiveTexture(GL_TEXTURE0 + data->colortex_sampler); +glBindTexture(GL_TEXTURE_2D, renderer->texcolorpick); +
[EGIT] [core/efl] master 03/05: ecore_evas: fix disappearing socket image
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=91ba12fed938281048586c7127370e41689a8eff commit 91ba12fed938281048586c7127370e41689a8eff Author: jiin.moonDate: Wed Dec 2 14:22:35 2015 -0800 ecore_evas: fix disappearing socket image Summary: In case there is connection between a server and some client, show/hide does not work properly. If there are clients need to show, this patch make it hide operation will not work even if get the hide signal @fix Reviewers: jypark, Hermet, cedric Subscribers: Hermet, cedric Differential Revision: https://phab.enlightenment.org/D2962 Signed-off-by: Cedric BAIL --- src/modules/ecore_evas/engines/extn/ecore_evas_extn.c | 18 +- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c b/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c index e280bbc..c04afe8 100644 --- a/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c +++ b/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c @@ -27,7 +27,6 @@ static int blank = 0x; static const char *interface_extn_name = "extn"; static const int interface_extn_version = 1; - static Ecore_Evas_Interface_Extn *_ecore_evas_extn_interface_new(void); static void *_ecore_evas_socket_switch(void *data, void *dest_buf); @@ -38,6 +37,7 @@ struct _Extn struct { Ecore_Ipc_Server *server; Eina_List *clients; + Eina_List *visible_clients; Eina_List *handlers; } ipc; struct { @@ -208,6 +208,7 @@ _ecore_evas_extn_free(Ecore_Evas *ee) ecore_ipc_client_del(client); } if (extn->ipc.server) ecore_ipc_server_del(extn->ipc.server); +if (extn->ipc.visible_clients) eina_list_free(extn->ipc.visible_clients); EINA_LIST_FREE(extn->file.updates, ipc) free(ipc); @@ -1594,6 +1595,7 @@ _ipc_client_del(void *data, int type EINA_UNUSED, void *event) if (!eina_list_data_find(extn->ipc.clients, e->client)) return ECORE_CALLBACK_PASS_ON; extn->ipc.clients = eina_list_remove(extn->ipc.clients, e->client); + extn->ipc.visible_clients = eina_list_remove(extn->ipc.visible_clients, e->client); _ecore_evas_extn_event(ee, ECORE_EVAS_EXTN_CLIENT_DEL); return ECORE_CALLBACK_PASS_ON; @@ -1629,6 +1631,8 @@ _ipc_client_data(void *data, int type EINA_UNUSED, void *event) case OP_SHOW: if (!ee->visible) { + if (!eina_list_data_find(extn->ipc.visible_clients, e->client)) +extn->ipc.visible_clients = eina_list_append(extn->ipc.visible_clients, e->client); ee->prop.withdrawn = EINA_FALSE; if (ee->func.fn_state_change) ee->func.fn_state_change(ee); ee->visible = 1; @@ -1638,10 +1642,14 @@ _ipc_client_data(void *data, int type EINA_UNUSED, void *event) case OP_HIDE: if (ee->visible) { - ee->prop.withdrawn = EINA_TRUE; - if (ee->func.fn_state_change) ee->func.fn_state_change(ee); - ee->visible = 0; - if (ee->func.fn_hide) ee->func.fn_hide(ee); + extn->ipc.visible_clients = eina_list_remove(extn->ipc.visible_clients, e->client); + if (!eina_list_count(extn->ipc.visible_clients)) +{ + ee->prop.withdrawn = EINA_TRUE; + if (ee->func.fn_state_change) ee->func.fn_state_change(ee); + ee->visible = 0; + if (ee->func.fn_hide) ee->func.fn_hide(ee); +} } break; case OP_FOCUS: --
[EGIT] [core/efl] master 01/05: edje: Remove redondant array in Evas 3D edd (part2)
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a19786649f0eba0bafc842c861934647d22074c7 commit a19786649f0eba0bafc842c861934647d22074c7 Author: perepelits.mDate: Wed Dec 2 14:09:33 2015 -0800 edje: Remove redondant array in Evas 3D edd (part2) Summary: There are more redundant arrays to be deleted. In fact I don't think string name of descriptor shouldn't never change, I was testing some 2D examples and this is not true. Reviewers: raster, jpeg, cedric Subscribers: artem.popov, cedric Differential Revision: https://phab.enlightenment.org/D3361 Signed-off-by: Cedric BAIL --- src/lib/edje/edje_data.c | 6 -- 1 file changed, 6 deletions(-) diff --git a/src/lib/edje/edje_data.c b/src/lib/edje/edje_data.c index 8406878..6bebd15 100644 --- a/src/lib/edje/edje_data.c +++ b/src/lib/edje/edje_data.c @@ -926,8 +926,6 @@ _edje_edd_init(void) EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_mesh_node, Edje_Part_Description_Mesh_Node, "mesh_node.aabb2.rel_to", mesh_node.aabb2.rel_to, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_mesh_node, Edje_Part_Description_Mesh_Node, "mesh_node.orientation.type", mesh_node.orientation.type, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_SUB_NESTED_LOOK(_edje_edd_edje_part_description_mesh_node, Edje_Part_Description_Mesh_Node, mesh_node); - EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY(_edje_edd_edje_part_description_mesh_node, Edje_Part_Description_Mesh_Node, "mesh_node.orientation.angle_axis", mesh_node.orientation.data, EDJE_T_FLOAT); - EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY(_edje_edd_edje_part_description_mesh_node, Edje_Part_Description_Mesh_Node, "mesh_node.orientation.quaternion", mesh_node.orientation.data, EDJE_T_FLOAT); EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_mesh_node, Edje_Part_Description_Mesh_Node, "mesh_node.texture.id", mesh_node.texture.id, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_mesh_node, Edje_Part_Description_Mesh_Node, "mesh_node.texture.set", mesh_node.texture.set, EET_T_UCHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_mesh_node, Edje_Part_Description_Mesh_Node, "mesh_node.texture.wrap1", mesh_node.texture.wrap1, EET_T_UCHAR); @@ -951,8 +949,6 @@ _edje_edd_init(void) EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_light, Edje_Part_Description_Light, "light.position.space", light.position.space, EET_T_CHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_light, Edje_Part_Description_Light, "light.orientation.type", light.orientation.type, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_SUB_NESTED_LOOK(_edje_edd_edje_part_description_light, Edje_Part_Description_Light, light); - EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY(_edje_edd_edje_part_description_light, Edje_Part_Description_Light, "light.orientation.angle_axis", light.orientation.data, EDJE_T_FLOAT); - EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY(_edje_edd_edje_part_description_light, Edje_Part_Description_Light, "light.orientation.quaternion", light.orientation.data, EDJE_T_FLOAT); EET_DATA_DESCRIPTOR_ADD_SUB_NESTED(_edje_edd_edje_part_description_light, Edje_Part_Description_Light, "light.properties.ambient", light.properties.ambient, _edje_edd_edje_part_description_3d_color); EET_DATA_DESCRIPTOR_ADD_SUB_NESTED(_edje_edd_edje_part_description_light, Edje_Part_Description_Light, "light.properties.diffuse", light.properties.diffuse, _edje_edd_edje_part_description_3d_color); EET_DATA_DESCRIPTOR_ADD_SUB_NESTED(_edje_edd_edje_part_description_light, Edje_Part_Description_Light, "light.properties.specular", light.properties.specular, _edje_edd_edje_part_description_3d_color); @@ -967,8 +963,6 @@ _edje_edd_init(void) EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_camera, Edje_Part_Description_Camera, "camera.position.space", camera.position.space, EET_T_CHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_camera, Edje_Part_Description_Camera, "camera.orientation.type", camera.orientation.type, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_SUB_NESTED_LOOK(_edje_edd_edje_part_description_camera, Edje_Part_Description_Camera, camera); - EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY(_edje_edd_edje_part_description_camera, Edje_Part_Description_Camera, "camera.orientation.angle_axis", camera.orientation.data, EDJE_T_FLOAT); - EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY(_edje_edd_edje_part_description_camera, Edje_Part_Description_Camera, "camera.orientation.quaternion", camera.orientation.data, EDJE_T_FLOAT); EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_camera, Edje_Part_Description_Camera, "camera.camera.perspective.fovy", camera.camera.fovy, EDJE_T_FLOAT);
[EGIT] [core/efl] master 04/05: edje: add missing EAPI keyword for edje_color_class_del
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=dc918064ce83ef029ce849cf5e80a85c434ff840 commit dc918064ce83ef029ce849cf5e80a85c434ff840 Author: Jee-Yong UmDate: Wed Dec 2 14:34:12 2015 -0800 edje: add missing EAPI keyword for edje_color_class_del Reviewers: jpeg Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D3398 Signed-off-by: Cedric BAIL --- src/lib/edje/edje_util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c index aa77208..f913fb8 100644 --- a/src/lib/edje/edje_util.c +++ b/src/lib/edje/edje_util.c @@ -717,7 +717,7 @@ edje_color_class_get(const char *color_class, int *r, int *g, int *b, int *a, in } } -void +EAPI void edje_color_class_del(const char *color_class) { Edje_Color_Class *cc; --
[EGIT] [core/efl] master 02/05: evas: fix bug with logic with eina_matrix in evas_3d_utils
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ce4146ec6303671e072ca2cbb29b1fec069faf0c commit ce4146ec6303671e072ca2cbb29b1fec069faf0c Author: se.osadchyDate: Wed Dec 2 14:14:17 2015 -0800 evas: fix bug with logic with eina_matrix in evas_3d_utils Summary: Also need to fix logically dead code in coverity. Reviewers: raster, Hermet, cedric Subscribers: jpeg Maniphest Tasks: T2832 Differential Revision: https://phab.enlightenment.org/D3346 Signed-off-by: Cedric BAIL --- src/Makefile_Evas.am | 1 + src/lib/eina/eina_matrix.c | 32 ++-- src/lib/evas/include/evas_3d_utils.h | 32 ++-- src/tests/evas/evas_suite.c | 1 + src/tests/evas/evas_suite.h | 1 + src/tests/evas/evas_test_matrix.c| 41 6 files changed, 76 insertions(+), 32 deletions(-) diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index 0c9a214..3c1f491 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -2132,6 +2132,7 @@ tests/evas/evas_test_image.c \ tests/evas/evas_test_mesh.c \ tests/evas/evas_test_mask.c \ tests/evas/evas_test_evasgl.c \ +tests/evas/evas_test_matrix.c \ tests/evas/evas_tests_helpers.h \ tests/evas/evas_suite.h diff --git a/src/lib/eina/eina_matrix.c b/src/lib/eina/eina_matrix.c index 7a1469c..13362f9 100644 --- a/src/lib/eina/eina_matrix.c +++ b/src/lib/eina/eina_matrix.c @@ -1004,40 +1004,40 @@ eina_matrix4_multiply(Eina_Matrix4 *out, const Eina_Matrix4 *mat_a, } MATRIX_XX(out) = MATRIX_XX(mat_a) * MATRIX_XX(mat_b) + MATRIX_YX(mat_a) * MATRIX_XY(mat_b) + -MATRIX_ZX(mat_a) * MATRIX_XZ(mat_b) + mat_a->wx * MATRIX_XW(mat_b); +MATRIX_ZX(mat_a) * MATRIX_XZ(mat_b) + MATRIX_WX(mat_a) * MATRIX_XW(mat_b); MATRIX_YX(out) = MATRIX_XX(mat_a) * MATRIX_YX(mat_b) + MATRIX_YX(mat_a) * MATRIX_YY(mat_b) + -MATRIX_ZX(mat_a) * MATRIX_YZ(mat_b) + mat_a->wx * MATRIX_YW(mat_b); +MATRIX_ZX(mat_a) * MATRIX_YZ(mat_b) + MATRIX_WX(mat_a) * MATRIX_YW(mat_b); MATRIX_ZX(out) = MATRIX_XX(mat_a) * MATRIX_ZX(mat_b) + MATRIX_YX(mat_a) * MATRIX_ZY(mat_b) + -MATRIX_ZX(mat_a) * MATRIX_ZZ(mat_b) + mat_a->wx * MATRIX_ZW(mat_b); +MATRIX_ZX(mat_a) * MATRIX_ZZ(mat_b) + MATRIX_WX(mat_a) * MATRIX_ZW(mat_b); MATRIX_WX(out) = MATRIX_XX(mat_a) * MATRIX_WX(mat_b) + MATRIX_YX(mat_a) * MATRIX_WY(mat_b) + -MATRIX_ZX(mat_a) * MATRIX_WZ(mat_b) + mat_a->wx * MATRIX_WW(mat_b); +MATRIX_ZX(mat_a) * MATRIX_WZ(mat_b) + MATRIX_WX(mat_a) * MATRIX_WW(mat_b); MATRIX_XY(out) = MATRIX_XY(mat_a) * MATRIX_XX(mat_b) + MATRIX_YY(mat_a) * MATRIX_XY(mat_b) + -MATRIX_ZY(mat_a) * MATRIX_XZ(mat_b) + mat_a->wy * MATRIX_XW(mat_b); +MATRIX_ZY(mat_a) * MATRIX_XZ(mat_b) + MATRIX_WY(mat_a) * MATRIX_XW(mat_b); MATRIX_YY(out) = MATRIX_XY(mat_a) * MATRIX_YX(mat_b) + MATRIX_YY(mat_a) * MATRIX_YY(mat_b) + -MATRIX_ZY(mat_a) * MATRIX_YZ(mat_b) + mat_a->wy * MATRIX_YW(mat_b); +MATRIX_ZY(mat_a) * MATRIX_YZ(mat_b) + MATRIX_WY(mat_a) * MATRIX_YW(mat_b); MATRIX_ZY(out) = MATRIX_XY(mat_a) * MATRIX_ZX(mat_b) + MATRIX_YY(mat_a) * MATRIX_ZY(mat_b) + -MATRIX_ZY(mat_a) * MATRIX_ZZ(mat_b) + mat_a->wy * MATRIX_ZW(mat_b); +MATRIX_ZY(mat_a) * MATRIX_ZZ(mat_b) + MATRIX_WY(mat_a) * MATRIX_ZW(mat_b); MATRIX_WY(out) = MATRIX_XY(mat_a) * MATRIX_WX(mat_b) + MATRIX_YY(mat_a) * MATRIX_WY(mat_b) + -MATRIX_ZY(mat_a) * MATRIX_WZ(mat_b) + mat_a->wy * MATRIX_WW(mat_b); +MATRIX_ZY(mat_a) * MATRIX_WZ(mat_b) + MATRIX_WY(mat_a) * MATRIX_WW(mat_b); MATRIX_XZ(out) = MATRIX_XZ(mat_a) * MATRIX_XX(mat_b) + MATRIX_YZ(mat_a) * MATRIX_XY(mat_b) + -MATRIX_ZZ(mat_a) * MATRIX_XZ(mat_b) + mat_a->wz * MATRIX_XW(mat_b); +MATRIX_ZZ(mat_a) * MATRIX_XZ(mat_b) + MATRIX_WZ(mat_a) * MATRIX_XW(mat_b); MATRIX_YZ(out) = MATRIX_XZ(mat_a) * MATRIX_YX(mat_b) + MATRIX_YZ(mat_a) * MATRIX_YY(mat_b) + -MATRIX_ZZ(mat_a) * MATRIX_YZ(mat_b) + mat_a->wz * MATRIX_YW(mat_b); +MATRIX_ZZ(mat_a) * MATRIX_YZ(mat_b) + MATRIX_WZ(mat_a) * MATRIX_YW(mat_b); MATRIX_ZZ(out) = MATRIX_XZ(mat_a) * MATRIX_ZX(mat_b) + MATRIX_YZ(mat_a) * MATRIX_ZY(mat_b) + -MATRIX_ZZ(mat_a) * MATRIX_ZZ(mat_b) + mat_a->wz * MATRIX_ZW(mat_b); +MATRIX_ZZ(mat_a) * MATRIX_ZZ(mat_b) + MATRIX_WZ(mat_a) * MATRIX_ZW(mat_b); MATRIX_WZ(out) = MATRIX_XZ(mat_a) * MATRIX_WX(mat_b) + MATRIX_YZ(mat_a) * MATRIX_WY(mat_b) + -MATRIX_ZZ(mat_a) * MATRIX_WZ(mat_b) +
[EGIT] [core/elementary] master 02/02: spinner: prevent scrolling when longpress timer enabled.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=55c5f3b6169ea0a7e230675f6ba8c2b7b122cd6a commit 55c5f3b6169ea0a7e230675f6ba8c2b7b122cd6a Author: woochan leeDate: Wed Dec 2 14:56:39 2015 -0800 spinner: prevent scrolling when longpress timer enabled. Summary: Spinner on scroller case. Scroll should be freeze when spinner button in long press state. If not, the scolling will be started after delete longpress timer. Like a other widgets, scroll not allowing is correct action for this. @fix Reviewers: jaehwan, Hermet, eagleeye, cedric Differential Revision: https://phab.enlightenment.org/D3334 Signed-off-by: Cedric BAIL --- src/lib/elm_spinner.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c index d2793bb..251a377 100644 --- a/src/lib/elm_spinner.c +++ b/src/lib/elm_spinner.c @@ -540,6 +540,8 @@ _val_inc_start(void *data) sd->spin_timer = ecore_timer_add(sd->interval, _spin_value, data); _spin_value(data); + elm_widget_scroll_freeze_push(data); + return ECORE_CALLBACK_CANCEL; } @@ -555,6 +557,8 @@ _val_dec_start(void *data) sd->spin_timer = ecore_timer_add(sd->interval, _spin_value, data); _spin_value(data); + elm_widget_scroll_freeze_push(data); + return ECORE_CALLBACK_CANCEL; } @@ -566,6 +570,8 @@ _spin_stop(Evas_Object *obj) sd->interval = sd->first_interval; sd->spin_speed = 0; ELM_SAFE_FREE(sd->spin_timer, ecore_timer_del); + + elm_widget_scroll_freeze_pop(obj); } static Eina_Bool --
[EGIT] [apps/ephoto] master 01/01: Ephoto: Don't resort back to thumb browser on delete.
okra pushed a commit to branch master. http://git.enlightenment.org/apps/ephoto.git/commit/?id=e5695a6aee447102e297e28beeb344e50bb77d92 commit e5695a6aee447102e297e28beeb344e50bb77d92 Author: Stephen HoustonDate: Wed Dec 2 19:11:29 2015 -0600 Ephoto: Don't resort back to thumb browser on delete. --- src/bin/ephoto.h| 2 +- src/bin/ephoto_main.c | 23 ++- src/bin/ephoto_single_browser.c | 14 ++ 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/src/bin/ephoto.h b/src/bin/ephoto.h index 17855b7..ce9c84f 100644 --- a/src/bin/ephoto.h +++ b/src/bin/ephoto.h @@ -203,7 +203,7 @@ struct _Ephoto_Event_Entry_Create Ephoto_Entry *ephoto_entry_new(Ephoto *ephoto, const char *path, const char *label, Eina_File_Type type); -void ephoto_entry_free(Ephoto_Entry *entry); +void ephoto_entry_free(Ephoto *ephoto, Ephoto_Entry *entry); void ephoto_entry_free_listener_add(Ephoto_Entry *entry, void (*cb) (void *data, const Ephoto_Entry *entry), const void *data); void ephoto_entry_free_listener_del(Ephoto_Entry *entry, diff --git a/src/bin/ephoto_main.c b/src/bin/ephoto_main.c index 0ec69e9..e601818 100644 --- a/src/bin/ephoto_main.c +++ b/src/bin/ephoto_main.c @@ -423,9 +423,11 @@ _ephoto_populate_entries(Ephoto_Dir_Data *ed) Ephoto_Entry *entry; if (ed->dirs_only) - EINA_LIST_FREE(ed->ephoto->direntries, entry) ephoto_entry_free(entry); + EINA_LIST_FREE(ed->ephoto->direntries, entry) + ephoto_entry_free(entry->ephoto, entry); else if (ed->thumbs_only) - EINA_LIST_FREE(ed->ephoto->entries, entry) ephoto_entry_free(entry); + EINA_LIST_FREE(ed->ephoto->entries, entry) + ephoto_entry_free(entry->ephoto, entry); else ephoto_entries_free(ed->ephoto); @@ -621,15 +623,26 @@ ephoto_entry_new(Ephoto *ephoto, const char *path, const char *label, } void -ephoto_entry_free(Ephoto_Entry *entry) +ephoto_entry_free(Ephoto *ephoto, Ephoto_Entry *entry) { Ephoto_Entry_Free_Listener *fl; + Eina_List *node; EINA_LIST_FREE(entry->free_listeners, fl) { fl->cb((void *) fl->data, entry); free(fl); } + if (entry->is_dir) + { +node = eina_list_data_find_list(ephoto->direntries, entry); +ephoto->direntries = eina_list_remove_list(ephoto->direntries, node); + } + else + { +node = eina_list_data_find_list(ephoto->entries, entry); +ephoto->entries = eina_list_remove_list(ephoto->entries, node); + } eina_stringshare_del(entry->path); eina_stringshare_del(entry->label); free(entry); @@ -670,6 +683,6 @@ ephoto_entries_free(Ephoto *ephoto) { Ephoto_Entry *entry; - EINA_LIST_FREE(ephoto->entries, entry) ephoto_entry_free(entry); - EINA_LIST_FREE(ephoto->direntries, entry) ephoto_entry_free(entry); + EINA_LIST_FREE(ephoto->entries, entry) ephoto_entry_free(ephoto, entry); + EINA_LIST_FREE(ephoto->direntries, entry) ephoto_entry_free(ephoto, entry); } diff --git a/src/bin/ephoto_single_browser.c b/src/bin/ephoto_single_browser.c index 4ec1174..5019721 100644 --- a/src/bin/ephoto_single_browser.c +++ b/src/bin/ephoto_single_browser.c @@ -837,8 +837,6 @@ _prev_entry(Ephoto_Single_Browser *sb) { Eina_List *node; Ephoto_Entry *entry = NULL; - printf("Hi\n"); - printf("%s\n", sb->entry->path); node = eina_list_data_find_list(sb->ephoto->entries, sb->entry); if (!node) return; @@ -1799,10 +1797,7 @@ _delete_apply(void *data, Evas_Object *obj EINA_UNUSED, elm_object_focus_set(sb->event, EINA_TRUE); evas_object_freeze_events_set(sb->event, EINA_FALSE); } - ephoto_directory_set(sb->ephoto, sb->ephoto->config->directory, - NULL, EINA_FALSE, EINA_TRUE); - ephoto_title_set(sb->ephoto, sb->ephoto->config->directory); - evas_object_smart_callback_call(sb->main, "back", NULL); + ephoto_entry_free(sb->ephoto, sb->entry); } static void @@ -2427,11 +2422,14 @@ _key_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, } static void -_entry_free(void *data, const Ephoto_Entry *entry EINA_UNUSED) +_entry_free(void *data, const Ephoto_Entry *entry) { Ephoto_Single_Browser *sb = data; - sb->entry = NULL; + if (entry == sb->entry) + { +_next_entry(sb); + } } static void --
[EGIT] [core/elementary] master 01/02: elm: set language to edje when elm_language_set is called.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=406b0937c0124c483450a6fbcc41cddfc758ba01 commit 406b0937c0124c483450a6fbcc41cddfc758ba01 Author: Shilpa SinghDate: Wed Dec 2 14:55:10 2015 -0800 elm: set language to edje when elm_language_set is called. Summary: Application set language using elm_language_set and when elm_language_set is called language should be set to edje as well @fix Test Plan: Call elm_language_set and check language should be set to edje as well. Reviewers: cedric Differential Revision: https://phab.enlightenment.org/D3365 Signed-off-by: Cedric BAIL --- src/lib/elm_main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/elm_main.c b/src/lib/elm_main.c index 9ad2e8d..2799d46 100644 --- a/src/lib/elm_main.c +++ b/src/lib/elm_main.c @@ -1155,6 +1155,7 @@ elm_language_set(const char *lang) { setlocale(LC_ALL, lang); _elm_win_translate(); + edje_language_set(lang); } EAPI Eina_Bool --
[EGIT] [apps/ephoto] master 01/01: Ephoto: Use correct entry del func
okra pushed a commit to branch master. http://git.enlightenment.org/apps/ephoto.git/commit/?id=d748fdaaf29fae3f0bc1dc499b1b038c7e102590 commit d748fdaaf29fae3f0bc1dc499b1b038c7e102590 Author: Stephen HoustonDate: Wed Dec 2 19:13:09 2015 -0600 Ephoto: Use correct entry del func --- src/bin/ephoto_thumb_browser.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/ephoto_thumb_browser.c b/src/bin/ephoto_thumb_browser.c index 8b1fe55..a81eca7 100644 --- a/src/bin/ephoto_thumb_browser.c +++ b/src/bin/ephoto_thumb_browser.c @@ -452,7 +452,7 @@ _todo_items_process(void *data) entry->parent, ELM_GENLIST_ITEM_NONE, _entry_cmp, NULL, NULL); if (!entry->item) { - ephoto_entry_free(entry); + ephoto_entry_free(tb->ephoto, entry); } } else @@ -483,7 +483,7 @@ _todo_items_process(void *data) } else { - ephoto_entry_free(entry); + ephoto_entry_free(tb->ephoto, entry); } } tb->animator.processed++; --
[EGIT] [core/efl] master 01/01: evas: rewrite gl image transformation logic in a very simple way
eunue pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6768c38de47ca09b6fed3335520d1f63bf3ec933 commit 6768c38de47ca09b6fed3335520d1f63bf3ec933 Author: Jaeun ChoiDate: Thu Dec 3 11:49:21 2015 +0900 evas: rewrite gl image transformation logic in a very simple way all we need to do for image transformation such as rotation or flipping in gl is to map the vertices of source image to destination in a changed order. this commit not only enhances readability but also fixes bugs in rotation. @fix --- .../evas/engines/gl_common/evas_gl_context.c | 237 ++--- 1 file changed, 157 insertions(+), 80 deletions(-) diff --git a/src/modules/evas/engines/gl_common/evas_gl_context.c b/src/modules/evas/engines/gl_common/evas_gl_context.c index dc33384..440d345 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_context.c +++ b/src/modules/evas/engines/gl_common/evas_gl_context.c @@ -93,6 +93,11 @@ evas_gl_symbols(void *(*GetProcAddress)(const char *name)) #define FINDSYM2(dst, sym, typ) if (!dst) dst = (typ)dlsym(RTLD_DEFAULT, sym) #define FALLBAK(dst, typ) if (!dst) dst = (typ)sym_missing +#define SWAP(a, b, tmp) \ + tmp = *a; \ + *a = *b; \ + *b = tmp; + #ifdef GL_GLES FINDSYM(glsym_glGenFramebuffers, "glGenFramebuffers", glsym_func_void); FINDSYM2(glsym_glGenFramebuffers, "glGenFramebuffers", glsym_func_void); @@ -1833,71 +1838,111 @@ again: PUSH_6_COLORS(pn, r, g, b, a); } +// 1-2 4-1 +// | | => | | +// 4-3 3-2 static void -_rotate_point_90(double *x, double *y, double w, double h) +_rotate_90(double *x1, double *y1, double *x2, double *y2, double *x3, double *y3, double *x4, double *y4) { - double tx, ty, t; - - tx = *x - w / 2; - ty = *y - h / 2; - t = tx; - tx = ty; - ty = t; - tx = tx + h / 2; - ty = ty + w / 2; - *x = tx * h / w; - *y = w - ty * w / h; + double tmp; + + SWAP(x1, x4, tmp); + SWAP(y1, y4, tmp); + + SWAP(x4, x3, tmp); + SWAP(y4, y3, tmp); + + SWAP(x3, x2, tmp); + SWAP(y3, y2, tmp); } +// 1-2 3-4 +// | | => | | +// 4-3 2-1 static void -_rotate_point_180(double *x, double *y, double w, double h) +_rotate_180(double *x1, double *y1, double *x2, double *y2, double *x3, double *y3, double *x4, double *y4) { - double tx, ty; - - tx = *x - w / 2; - ty = *y - h / 2; - tx = -tx; - ty = -ty; - tx = tx + w / 2; - ty = ty + h / 2; - *x = tx; - *y = ty; + double tmp; + + SWAP(x1, x3, tmp); + SWAP(y1, y3, tmp); + + SWAP(x2, x4, tmp); + SWAP(y2, y4, tmp); } +// 1-2 2-3 +// | | => | | +// 4-3 1-4 static void -_rotate_point_270(double *x, double *y, double w, double h) +_rotate_270(double *x1, double *y1, double *x2, double *y2, double *x3, double *y3, double *x4, double *y4) { - double tx, ty, t; - - tx = *x - h / 2; - ty = *y - w / 2; - t = tx; - tx = ty; - ty = t; - tx = tx + w / 2; - ty = ty + h / 2; - *x = h - tx * h / w; - *y = ty * w / h; + double tmp; + + SWAP(x1, x2, tmp); + SWAP(y1, y2, tmp); + + SWAP(x2, x3, tmp); + SWAP(y2, y3, tmp); + + SWAP(x3, x4, tmp); + SWAP(y3, y4, tmp); } +// 1-2 2-1 +// | | => | | +// 4-3 3-4 static void -_transpose(double *x, double *y, double w, double h) +_flip_horizontal(double *x1, double *y1, double *x2, double *y2, double *x3, double *y3, double *x4, double *y4) { - double t; + double tmp; - t = *x; - *x = *y * h / w; - *y = t * w / h; + SWAP(x1, x2, tmp); + SWAP(y1, y2, tmp); + + SWAP(x3, x4, tmp); + SWAP(y3, y4, tmp); } +// 1-2 4-3 +// | | => | | +// 4-3 1-2 static void -_transverse(double *x, double *y, double w, double h) +_flip_vertical(double *x1, double *y1, double *x2, double *y2, double *x3, double *y3, double *x4, double *y4) { - double t; + double tmp; + + SWAP(x1, x4, tmp); + SWAP(y1, y4, tmp); - t = *x; - *x = (w - *y) * h / w; - *y = (h - t) * w / h; + SWAP(x2, x3, tmp); + SWAP(y2, y3, tmp); +} + +// 1-2 1-4 +// | | => | | +// 4-3 2-3 +static void +_transpose(double *x1 EINA_UNUSED, double *y1 EINA_UNUSED, double *x2, double *y2, + double *x3 EINA_UNUSED, double *y3 EINA_UNUSED, double *x4, double *y4) +{ + double tmp; + + SWAP(x2, x4, tmp); + SWAP(y2, y4, tmp); +} + +// 1-2 3-2 +// | | => | | +// 4-3 4-1 +static void +_transverse(double *x1, double *y1, double *x2 EINA_UNUSED, double *y2 EINA_UNUSED, +double *x3, double *y3, double *x4 EINA_UNUSED, double *y4 EINA_UNUSED) +{ + double tmp; + + SWAP(x1, x3, tmp); + SWAP(y1, y3, tmp); } void @@ -1909,6 +1954,7 @@ evas_gl_common_context_image_push(Evas_Engine_GL_Context *gc, int r, int g, int b, int a, Eina_Bool smooth, Eina_Bool tex_only) { + Evas_GL_Texture_Pool *pt; double ox1, oy1, ox2, oy2,
[EGIT] [apps/ephoto] master 01/01: Ephoto: If multiple items are selected, only use those items for Single and Slideshow.
okra pushed a commit to branch master. http://git.enlightenment.org/apps/ephoto.git/commit/?id=aee6e9e408556f4bd2c44112b257242e83266798 commit aee6e9e408556f4bd2c44112b257242e83266798 Author: Stephen HoustonDate: Wed Dec 2 20:45:35 2015 -0600 Ephoto: If multiple items are selected, only use those items for Single and Slideshow. --- src/bin/ephoto.h| 3 +++ src/bin/ephoto_main.c | 23 ++- src/bin/ephoto_single_browser.c | 20 +++- src/bin/ephoto_slideshow.c | 12 +++- src/bin/ephoto_thumb_browser.c | 31 ++- 5 files changed, 81 insertions(+), 8 deletions(-) diff --git a/src/bin/ephoto.h b/src/bin/ephoto.h index ce9c84f..ce75554 100644 --- a/src/bin/ephoto.h +++ b/src/bin/ephoto.h @@ -61,6 +61,7 @@ void ephoto_config_slideshow(Ephoto *em); void ephoto_config_about(Ephoto *em); Evas_Object *ephoto_single_browser_add(Ephoto *ephoto, Evas_Object *parent); +void ephoto_single_browser_entries_set(Evas_Object *obj, Eina_List *entries); void ephoto_single_browser_entry_set(Evas_Object *obj, Ephoto_Entry *entry); void ephoto_single_browser_path_pending_set(Evas_Object *obj, const char *path); @@ -72,6 +73,7 @@ void ephoto_single_browser_cancel_editing(Evas_Object *main, /* smart callbacks called: "back" - the user wants to go back to the previous * screen. */ Evas_Object *ephoto_slideshow_add(Ephoto *ephoto, Evas_Object *parent); +void ephoto_slideshow_entries_set(Evas_Object *obj, Eina_List *entries); void ephoto_slideshow_entry_set(Evas_Object *obj, Ephoto_Entry *entry); /* smart callbacks called: "back" - the user wants to go back to the previous @@ -163,6 +165,7 @@ struct _Ephoto Eina_List *entries; Eina_List *direntries; + Eina_List *selentries; Eina_List *thumbs; int thumb_gen_size; diff --git a/src/bin/ephoto_main.c b/src/bin/ephoto_main.c index dcebeea..5785cdf 100644 --- a/src/bin/ephoto_main.c +++ b/src/bin/ephoto_main.c @@ -39,12 +39,19 @@ _ephoto_thumb_browser_show(Ephoto *ephoto, Ephoto_Entry *entry) ephoto_title_set(ephoto, ephoto->config->directory); if ((entry) && (entry->item)) - elm_gengrid_item_bring_in(entry->item, ELM_GENGRID_ITEM_SCROLLTO_IN); + { +elm_gengrid_item_selected_set(entry->item, EINA_TRUE); +elm_gengrid_item_bring_in(entry->item, ELM_GENGRID_ITEM_SCROLLTO_IN); + } } static void _ephoto_single_browser_show(Ephoto *ephoto, Ephoto_Entry *entry) { + if (ephoto->selentries) + ephoto_single_browser_entries_set(ephoto->single_browser, ephoto->selentries); + else + ephoto_single_browser_entries_set(ephoto->single_browser, ephoto->entries); ephoto_single_browser_entry_set(ephoto->single_browser, entry); elm_naviframe_item_simple_promote(ephoto->pager, ephoto->single_browser); elm_object_focus_set(ephoto->single_browser, EINA_TRUE); @@ -54,6 +61,10 @@ _ephoto_single_browser_show(Ephoto *ephoto, Ephoto_Entry *entry) static void _ephoto_slideshow_show(Ephoto *ephoto, Ephoto_Entry *entry) { + if (ephoto->selentries) + ephoto_slideshow_entries_set(ephoto->slideshow, ephoto->selentries); + else + ephoto_slideshow_entries_set(ephoto->slideshow, ephoto->entries); ephoto_slideshow_entry_set(ephoto->slideshow, entry); elm_naviframe_item_simple_promote(ephoto->pager, ephoto->slideshow); elm_object_focus_set(ephoto->slideshow, EINA_TRUE); @@ -67,6 +78,7 @@ _ephoto_single_browser_back(void *data, Evas_Object *obj EINA_UNUSED, Ephoto *ephoto = data; Ephoto_Entry *entry = event_info; + ephoto->selentries = NULL; _ephoto_thumb_browser_show(ephoto, entry); } @@ -84,10 +96,12 @@ _ephoto_slideshow_back(void *data, Evas_Object *obj EINA_UNUSED, break; case EPHOTO_STATE_THUMB: + ephoto->selentries = NULL; _ephoto_thumb_browser_show(ephoto, entry); break; default: + ephoto->selentries = NULL; _ephoto_thumb_browser_show(ephoto, entry); } } @@ -108,6 +122,7 @@ _ephoto_thumb_browser_changed_directory(void *data, { Ephoto *ephoto = data; + ephoto->selentries = NULL; ephoto_single_browser_entry_set(ephoto->single_browser, NULL); ephoto_slideshow_entry_set(ephoto->slideshow, NULL); } @@ -172,6 +187,7 @@ ephoto_window_add(const char *path) EPHOTO_EVENT_POPULATE_END = ecore_event_type_new(); EPHOTO_EVENT_POPULATE_ERROR = ecore_event_type_new(); + ephoto->selentries = NULL; ephoto->win = elm_win_util_standard_add("ephoto", "Ephoto"); if (!ephoto->win) { @@ -642,6 +658,11 @@ ephoto_entry_free(Ephoto *ephoto, Ephoto_Entry *entry) { node = eina_list_data_find_list(ephoto->entries, entry); ephoto->entries = eina_list_remove_list(ephoto->entries, node); +if (ephoto->selentries) + { + node = eina_list_data_find_list(ephoto->selentries, entry); +
[EGIT] [core/efl] master 01/01: edje: fix edje RTL description in case of custom state of a part
ami pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=59681c331139e4d5424e77ff1614dc47fa8ddd8e commit 59681c331139e4d5424e77ff1614dc47fa8ddd8e Author: Amitesh SinghDate: Thu Dec 3 11:26:10 2015 +0530 edje: fix edje RTL description in case of custom state of a part Summary: In case of RTL, the "custom" state properties does not apply. It happened because we don't copy the latest src to dst in set_state(PART:.., "custom", 0.0); in case of dst is already populated. We should copy the updated src to dst whenever we set the new custom description. @fix Reviewers: cedric, raster, jpeg, zmike, jaehwan Subscribers: kimcinoo, seoz, jpeg Differential Revision: https://phab.enlightenment.org/D3394 --- src/lib/edje/edje_calc.c | 50 ++-- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index 763c67b..3eae7e0 100644 --- a/src/lib/edje/edje_calc.c +++ b/src/lib/edje/edje_calc.c @@ -271,6 +271,52 @@ _edje_part_make_rtl(Edje_Part_Description_Common *desc) desc->rel2.id_x = i; } +static Edje_Part_Description_Common * +_edje_get_custom_description_by_orientation(Edje *ed, Edje_Part_Description_Common *src, Edje_Part_Description_Common **dst, unsigned char type) +{ + Edje_Part_Description_Common *ret; + size_t memsize = 0; + + if (!(*dst)) + { +ret = _edje_get_description_by_orientation(ed, src, dst, type); +return ret; + } + +#define POPULATE_MEMSIZE_RTL(Short, Type)\ +case EDJE_PART_TYPE_##Short: \ +{ \ + memsize = sizeof(Edje_Part_Description_##Type);\ + break; \ +} + + switch (type) + { +POPULATE_MEMSIZE_RTL(RECTANGLE, Common); +POPULATE_MEMSIZE_RTL(SNAPSHOT, Snapshot); +POPULATE_MEMSIZE_RTL(SWALLOW, Common); +POPULATE_MEMSIZE_RTL(GROUP, Common); +POPULATE_MEMSIZE_RTL(SPACER, Common); +POPULATE_MEMSIZE_RTL(TEXT, Text); +POPULATE_MEMSIZE_RTL(TEXTBLOCK, Text); +POPULATE_MEMSIZE_RTL(IMAGE, Image); +POPULATE_MEMSIZE_RTL(PROXY, Proxy); +POPULATE_MEMSIZE_RTL(BOX, Box); +POPULATE_MEMSIZE_RTL(TABLE, Table); +POPULATE_MEMSIZE_RTL(EXTERNAL, External); +POPULATE_MEMSIZE_RTL(CAMERA, Camera); +POPULATE_MEMSIZE_RTL(LIGHT, Light); +POPULATE_MEMSIZE_RTL(MESH_NODE, Mesh_Node); + } +#undef POPULATE_MEMSIZE_RTL + + ret = *dst; + memcpy(ret, src, memsize); + _edje_part_make_rtl(ret); + + return ret; +} + /** * Returns part description * @@ -398,8 +444,8 @@ _edje_part_description_find(Edje *ed, Edje_Real_Part *rp, const char *state_name if (!strcmp(state_name, "custom")) return rp->custom ? -_edje_get_description_by_orientation(ed, rp->custom->description, - >custom->description_rtl, ep->type) : NULL; +_edje_get_custom_description_by_orientation(ed, rp->custom->description, + >custom->description_rtl, ep->type) : NULL; if (!strcmp(state_name, "default") && approximate) { --
[EGIT] [apps/ephoto] master 01/01: Ephoto: Release the drag event on mouse up in the single view.
okra pushed a commit to branch master. http://git.enlightenment.org/apps/ephoto.git/commit/?id=271d43b9b06d9a9bd3ce4e5b2051cf143655b6d7 commit 271d43b9b06d9a9bd3ce4e5b2051cf143655b6d7 Author: Stephen HoustonDate: Wed Dec 2 17:55:08 2015 -0600 Ephoto: Release the drag event on mouse up in the single view. --- src/bin/ephoto_single_browser.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bin/ephoto_single_browser.c b/src/bin/ephoto_single_browser.c index b95ec34..4ec1174 100644 --- a/src/bin/ephoto_single_browser.c +++ b/src/bin/ephoto_single_browser.c @@ -131,15 +131,15 @@ _image_mouse_up_cb(void *data, Evas *e EINA_UNUSED, if ((ev->button == 1) && (ev->flags == EVAS_BUTTON_DOUBLE_CLICK)) { - ecore_timer_del(_1s_hold); - _1s_hold = NULL; - elm_win_fullscreen_set(sb->ephoto->win, +elm_win_fullscreen_set(sb->ephoto->win, !elm_win_fullscreen_get(sb->ephoto->win)); } else if (ev->button == 3) { _edit_menu(sb); } + ecore_timer_del(_1s_hold); + _1s_hold = NULL; } static Evas_Object * --
[EGIT] [core/elementary] master 01/01: box: skip box in accessibility tree by default
stanluk pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=63381b64ffd7095a5c570c47f4a29d9d989800ba commit 63381b64ffd7095a5c570c47f4a29d9d989800ba Author: Lukasz StanislawskiDate: Tue Dec 1 12:29:02 2015 +0100 box: skip box in accessibility tree by default --- src/lib/elm_box.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/elm_box.c b/src/lib/elm_box.c index d37fd08..352e956 100644 --- a/src/lib/elm_box.c +++ b/src/lib/elm_box.c @@ -439,6 +439,7 @@ elm_box_add(Evas_Object *parent) EOLIAN static Eo * _elm_box_eo_base_constructor(Eo *obj, Elm_Box_Data *_pd EINA_UNUSED) { + eo_do(obj, elm_interface_atspi_accessible_type_set(ELM_ATSPI_TYPE_SKIPPED)); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor()); eo_do(obj, evas_obj_type_set(MY_CLASS_NAME_LEGACY), --
[EGIT] [core/efl] master 01/01: build: fix distcheck after model saver and loader rework
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a7a2781a00ca6557aef6490bc0159cb426441b28 commit a7a2781a00ca6557aef6490bc0159cb426441b28 Author: Stefan SchmidtDate: Wed Dec 2 11:33:12 2015 +0100 build: fix distcheck after model saver and loader rework 32c33ed64dda542c7cfc952fc656bb711260441b broke distcheck here as the header files would not be included in the generated tarballs. This is the second or third time I fixed soemthing like this after a loader/saver rework. I would appreciate if the people involved would run distcheck on their own. --- src/Makefile_Evas.am | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index f768e2d..0c9a214 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -225,6 +225,7 @@ lib_evas_libevas_la_SOURCES += \ lib/evas/common3d/save_load/evas_model_load.c \ lib/evas/common3d/save_load/evas_model_save.c \ lib/evas/common3d/save_load/evas_model_load_save_common.c \ +lib/evas/common3d/save_load/evas_model_load_save_common.h \ modules/evas/model_loaders/eet/evas_model_load_eet.c \ modules/evas/model_loaders/md2/evas_model_load_md2.c \ modules/evas/model_loaders/obj/evas_model_load_obj.c \ --
[EGIT] [core/elementary] master 01/01: atspi: always use widget's subobj as accessible children
stanluk pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=0aa37178abc4409a647bbf321a346bc5c7cbf261 commit 0aa37178abc4409a647bbf321a346bc5c7cbf261 Author: Lukasz StanislawskiDate: Tue Dec 1 16:55:12 2015 +0100 atspi: always use widget's subobj as accessible children Patch fixes issue when widgets could be orphaned in accessibility tree due to overloaded accessible_children_get methods in widgets returning Elm_Object_Items. Widgets like genlist, gengrid, list and toolbar returned only items as its accessibility children so if some widget was attached directly to those widgets (like ctxpopup/popup) it become orphaned in accessibility tree. --- src/lib/elm_gengrid.c| 32 src/lib/elm_gengrid_item.eo | 1 - src/lib/elm_genlist.c| 42 ++-- src/lib/elm_genlist_item.eo | 1 - src/lib/elm_interface_atspi_accessible.c | 28 - src/lib/elm_list.c | 24 ++ src/lib/elm_list_item.eo | 1 - src/lib/elm_toolbar.c| 13 -- src/lib/elm_widget.c | 28 + src/lib/elm_widget_item.eo | 1 - src/tests/elm_test_genlist.c | 36 --- src/tests/elm_test_list.c| 6 ++--- 12 files changed, 50 insertions(+), 163 deletions(-) diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c index 1b6f0b4..3c6018e 100644 --- a/src/lib/elm_gengrid.c +++ b/src/lib/elm_gengrid.c @@ -900,9 +900,6 @@ _item_content_realize(Elm_Gen_Item *it, elm_widget_sub_object_add(WIDGET(it), content); if (eo_do_ret(EO_OBJ(it), tmp, elm_wdg_item_disabled_get())) elm_widget_disabled_set(content, EINA_TRUE); - - if (_elm_config->atspi_mode && eo_isa(content, ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN)) - eo_do(content, elm_interface_atspi_accessible_parent_set(EO_OBJ(it))); } } } @@ -5534,27 +5531,6 @@ _elm_gengrid_item_elm_interface_atspi_accessible_name_get(Eo *eo_it EINA_UNUSED, return ret; } -EOLIAN Eina_List* -_elm_gengrid_item_elm_interface_atspi_accessible_children_get(Eo *eo_it EINA_UNUSED, Elm_Gen_Item *it) -{ - Eina_List *ret = NULL; - if (VIEW(it)) - { -Eina_List *parts; -const char *key; -parts = elm_widget_stringlist_get(edje_object_data_get(VIEW(it), "contents")); - -EINA_LIST_FREE(parts, key) - { - Evas_Object *part; - part = edje_object_part_swallow_get(VIEW(it), key); - if (part && eo_isa(part, ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN)) - ret = eina_list_append(ret, part); - } - } - return ret; -} - EAPI Elm_Object_Item * elm_gengrid_nth_item_get(const Evas_Object *obj, unsigned int nth) { @@ -5687,15 +5663,17 @@ _elm_gengrid_elm_interface_atspi_widget_action_elm_actions_get(Eo *obj EINA_UNUS } EOLIAN Eina_List* -_elm_gengrid_elm_interface_atspi_accessible_children_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd) +_elm_gengrid_elm_interface_atspi_accessible_children_get(Eo *obj, Elm_Gengrid_Data *sd) { - Eina_List *ret = NULL; + Eina_List *ret = NULL, *ret2 = NULL; Elm_Gen_Item *it; EINA_INLIST_FOREACH(sd->items, it) ret = eina_list_append(ret, EO_OBJ(it)); - return ret; + eo_do_super(obj, ELM_GENGRID_CLASS, ret2 = elm_interface_atspi_accessible_children_get()); + + return eina_list_merge(ret, ret2); } EOLIAN Elm_Atspi_State_Set diff --git a/src/lib/elm_gengrid_item.eo b/src/lib/elm_gengrid_item.eo index 95a079c..0783ee5 100644 --- a/src/lib/elm_gengrid_item.eo +++ b/src/lib/elm_gengrid_item.eo @@ -211,6 +211,5 @@ class Elm.Gengrid_Item(Elm.Widget_Item) Elm.Widget_Item.cursor_unset; Elm_Interface_Atspi_Accessible.name.get; Elm_Interface_Atspi_Accessible.state_set.get; - Elm_Interface_Atspi_Accessible.children.get; } } diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c index d2d0005..020ab24 100644 --- a/src/lib/elm_genlist.c +++ b/src/lib/elm_genlist.c @@ -381,8 +381,6 @@ _item_content_realize(Elm_Gen_Item *it, ((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(it)), WIDGET(it), key); if (!content) continue; *contents = eina_list_append(*contents, content); - if (_elm_config->atspi_mode && eo_isa(content, ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN)) - eo_do(content, elm_interface_atspi_accessible_parent_set(EO_OBJ(it))); if (!edje_object_part_swallow(target, key, content)) { ERR("%s (%p) can not be swallowed into %s", @@ -396,12 +394,6 @@ _item_content_realize(Elm_Gen_Item *it, snprintf(buf,
[EGIT] [tools/erigo] master 01/01: Refactoring and fixes introduced before
yakov pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=2e24c92f56581b710b821ad55f2f643aa71211ca commit 2e24c92f56581b710b821ad55f2f643aa71211ca Author: Yakov GoldbergDate: Wed Dec 2 09:58:34 2015 +0200 Refactoring and fixes introduced before Commit, used to fix container flows, introduced wrong unpacking. --- src/bin/gui/editor.c | 26 -- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/bin/gui/editor.c b/src/bin/gui/editor.c index f32e3fb..ad315b1 100644 --- a/src/bin/gui/editor.c +++ b/src/bin/gui/editor.c @@ -2737,29 +2737,27 @@ _drag_start_post(const Gui_Widget *wdg, const Eo *_wdg_eo) _obj_container_item_remove_helper(wdg_container, wdg_name_get(wdg)); - /* If dummy widget was created, create Eo and pack it. */ - Object_Container_Item *dummy_ci = wdg_obj_container_item_get(wdg_container, idx, NULL); Eo *wdg_cont_eo = session_eo_get(session, wdg_container); - if (dummy_ci) + if (!strcmp(wdg_class_name_get(wdg_container), DB_DEF_LAYOUT_CLASS)) { + /* If dummy widget was created, create Eo and pack it. */ + Object_Container_Item *dummy_ci = wdg_obj_container_item_get(wdg_container, idx, NULL); Gui_Widget *dummy_wdg = wdg_get(obj_container_item_eid_get(dummy_ci)); manager_widget_create((Gui_Session *) session, dummy_wdg, NULL); Eo *dummy_eo = session_eo_get(session, dummy_wdg); eo_do(wdg_cont_eo, elm_obj_container_content_unset(part)); eo_do(wdg_cont_eo, elm_obj_container_content_set(part, dummy_eo)); } - - /* FIXME: wdg_eo is NULL when dragging from objtree. It can be changed but should be?*/ - if (wdg_eo) + else if (!strcmp(wdg_class_name_get(wdg_container), DB_DEF_BOX_CLASS)) { - if (!strcmp(wdg_class_name_get(wdg_container), DB_DEF_BOX_CLASS)) -{ - eo_do(wdg_cont_eo, elm_obj_box_unpack(wdg_eo)); -} - else if (!strcmp(wdg_class_name_get(wdg_container), DB_DEF_TABLE_CLASS)) -{ - eo_do(wdg_cont_eo, elm_obj_table_unpack(wdg_eo)); -} + /* FIXME: wdg_eo is NULL when dragging from objtree. It can be changed but should be?*/ + if (wdg_eo) +eo_do(wdg_cont_eo, elm_obj_box_unpack(wdg_eo)); + } + else if (!strcmp(wdg_class_name_get(wdg_container), DB_DEF_TABLE_CLASS)) + { + if (wdg_eo) +eo_do(wdg_cont_eo, elm_obj_table_unpack(wdg_eo)); } } else if (wdg_container_type_get(wdg_container) == ITEM_CONTAINER) --
[EGIT] [core/efl] master 01/01: Evas Textblock: Fix text disappear issue when text is made up with multiple items.
herdsman pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=809d8fdafea0b38aa21c40dd9460be82dffece3a commit 809d8fdafea0b38aa21c40dd9460be82dffece3a Author: Youngbok ShinDate: Wed Dec 2 09:36:47 2015 +0200 Evas Textblock: Fix text disappear issue when text is made up with multiple items. Summary: Text is disappearing when we resize a singleline Evas Textblock with ellipsis. It is happened by putting a Text item at logical_items list without considering about logical position. It is only happended the text is made up with multiple items. @fix Test Plan: 1. Run elementary_test 2. Click Label Ellipsis 3. Resize the window dynamically and see the result. Reviewers: woohyun, tasn, herdsman Subscribers: jpeg, subodh6129, shilpasingh, cedric Maniphest Tasks: T2709 Differential Revision: https://phab.enlightenment.org/D3022 --- src/lib/evas/canvas/evas_object_textblock.c | 11 +- src/tests/evas/evas_test_textblock.c| 31 + 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c index bb9e8af..879659c 100644 --- a/src/lib/evas/canvas/evas_object_textblock.c +++ b/src/lib/evas/canvas/evas_object_textblock.c @@ -4803,7 +4803,16 @@ _layout_handle_ellipsis(Ctxt *c, Evas_Object_Textblock_Item *it, Eina_List *i) if ((wrap > 0) && !IS_AT_END(ti, (size_t) wrap)) { - _layout_item_text_split_strip_white(c, ti, i, wrap); + Eina_List *l = i; + + while (l) +{ + Evas_Object_Textblock_Item *iit = eina_list_data_get(l); + if (iit == _ITEM(ti)) break; + l = eina_list_prev(l); +} + + _layout_item_text_split_strip_white(c, ti, l, wrap); break; } else if (wrap < 0) diff --git a/src/tests/evas/evas_test_textblock.c b/src/tests/evas/evas_test_textblock.c index 70592b9..ad16793 100644 --- a/src/tests/evas/evas_test_textblock.c +++ b/src/tests/evas/evas_test_textblock.c @@ -2018,6 +2018,37 @@ START_TEST(evas_textblock_wrapping) evas_object_textblock_size_formatted_get(tb, , ); ck_assert_int_le(w, ellip_w); + /* Ellipsis test for multiple items in singleline. */ + { +evas_object_resize(tb, 500, 500); +evas_object_textblock_text_markup_set(tb, "ABC 한글한글 DEF"); +evas_textblock_cursor_format_prepend(cur, "+ ellipsis=1.0"); +evas_object_textblock_size_native_get(tb, , ); +evas_object_resize(tb, nw, nh); +evas_object_textblock_size_formatted_get(tb, , ); + +/* Make the object's width smaller. */ +for (i = 1; (nw / 5) <= (nw - i); i++) + { + evas_object_resize(tb, nw - i, nh); + evas_object_textblock_size_formatted_get(tb, , ); + ck_assert_int_le(bw, w); + } + +/* Revert the object's width to native width. */ +for (; (nw - i) <= nw; i--) + { + evas_object_resize(tb, nw - i, nh); + evas_object_textblock_size_formatted_get(tb, , ); + ck_assert_int_le(bw, w); + } + +/* The object resized same as native size. + * So, formatted width and native width should be same + * just like our first check. */ +ck_assert_int_eq(bw, w); + } + { double ellip; for(ellip = 0.0; ellip <= 1.0; ellip = ellip + 0.1) --
[EGIT] [core/elementary] master 01/01: menu: enhance accessibility support
stanluk pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=1e390e033259c905a2215d3a96eb799a29907f02 commit 1e390e033259c905a2215d3a96eb799a29907f02 Author: Lukasz StanislawskiDate: Fri Nov 27 18:14:54 2015 +0100 menu: enhance accessibility support --- src/lib/elm_atspi_bridge.c | 2 + src/lib/elm_menu.c | 147 + src/lib/elm_menu.eo| 5 +- src/lib/elm_menu_item.eo | 9 ++- 4 files changed, 161 insertions(+), 2 deletions(-) diff --git a/src/lib/elm_atspi_bridge.c b/src/lib/elm_atspi_bridge.c index f0eec7d..782d1fd 100644 --- a/src/lib/elm_atspi_bridge.c +++ b/src/lib/elm_atspi_bridge.c @@ -3718,6 +3718,8 @@ _set_broadcast_flag(const char *event, Eo *bridge) STATE_TYPE_SET(pd->object_broadcast_mask, ATSPI_OBJECT_EVENT_VISIBLE_DATA_CHANGED); else if (!strcmp(tokens[1], "ActiveDescendantChanged")) STATE_TYPE_SET(pd->object_broadcast_mask, ATSPI_OBJECT_EVENT_ACTIVE_DESCENDANT_CHANGED); +else if (!strcmp(tokens[1], "SelectionChanged")) + STATE_TYPE_SET(pd->object_broadcast_mask, ATSPI_OBJECT_EVENT_SELECTION_CHANGED); } else if (!strcmp(tokens[0], "Window")) { diff --git a/src/lib/elm_menu.c b/src/lib/elm_menu.c index ce49793..c5ca878 100644 --- a/src/lib/elm_menu.c +++ b/src/lib/elm_menu.c @@ -3,6 +3,7 @@ #endif #define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED +#define ELM_INTERFACE_ATSPI_SELECTION_PROTECTED #define ELM_WIDGET_ITEM_PROTECTED #include @@ -107,6 +108,8 @@ _submenu_sizing_eval(Elm_Menu_Item_Data *parent_it) { ELM_MENU_ITEM_DATA_GET(eo_item, item); elm_layout_sizing_eval(VIEW(item)); +if (_elm_config->atspi_mode) + elm_interface_atspi_accessible_state_changed_signal_emit(eo_item, ELM_ATSPI_STATE_SHOWING, EINA_TRUE); } @@ -488,6 +491,7 @@ _menu_item_activate_cb(void *data, if (eo_item2 != EO_OBJ(item)) elm_menu_item_selected_set(eo_item2, 0); } +eo_do(ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN, elm_interface_atspi_accessible_event_emit(EO_OBJ(item->parent), ELM_INTERFACE_ATSPI_SELECTION_EVENT_SELECTION_CHANGED, NULL)); } else { @@ -497,7 +501,10 @@ _menu_item_activate_cb(void *data, if (eo_item2 != EO_OBJ(item)) elm_menu_item_selected_set(eo_item2, 0); } +eo_do(ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN, elm_interface_atspi_accessible_event_emit(WIDGET(item), ELM_INTERFACE_ATSPI_SELECTION_EVENT_SELECTION_CHANGED, NULL)); } + if (_elm_config->atspi_mode) + elm_interface_atspi_accessible_state_changed_signal_emit(EO_OBJ(item), ELM_ATSPI_STATE_SELECTED, EINA_TRUE); } static void @@ -510,6 +517,8 @@ _menu_item_inactivate_cb(void *data, item->selected = 0; if (item->submenu.open) _submenu_hide(item); + if (_elm_config->atspi_mode) + elm_interface_atspi_accessible_state_changed_signal_emit(EO_OBJ(item), ELM_ATSPI_STATE_SELECTED, EINA_FALSE); } static Eina_Bool @@ -560,6 +569,7 @@ static void _item_obj_create(Elm_Menu_Item_Data *item) { VIEW(item) = elm_layout_add(WIDGET(item)); + eo_do(VIEW(item), elm_interface_atspi_accessible_type_set(ELM_ATSPI_TYPE_SKIPPED)); evas_object_size_hint_weight_set (VIEW(item), EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_fill_set(VIEW(item), EVAS_HINT_FILL, EVAS_HINT_FILL); @@ -583,6 +593,7 @@ static void _item_separator_obj_create(Elm_Menu_Item_Data *item) { VIEW(item) = elm_layout_add(WIDGET(item)); + eo_do(VIEW(item), elm_interface_atspi_accessible_type_set(ELM_ATSPI_TYPE_SKIPPED)); evas_object_size_hint_weight_set (VIEW(item), EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_fill_set(VIEW(item), EVAS_HINT_FILL, EVAS_HINT_FILL); @@ -605,7 +616,9 @@ _item_submenu_obj_create(Elm_Menu_Item_Data *item) char style[1024]; item->submenu.location = elm_icon_add(sd->bx); + eo_do(item->submenu.location, elm_interface_atspi_accessible_type_set(ELM_ATSPI_TYPE_DISABLED)); item->submenu.hv = hv = elm_hover_add(sd->bx); + eo_do(item->submenu.hv, elm_interface_atspi_accessible_type_set(ELM_ATSPI_TYPE_SKIPPED)); elm_widget_mirrored_set(hv, EINA_FALSE); elm_hover_target_set(hv, item->submenu.location); elm_hover_parent_set(hv, sd->parent); @@ -671,8 +684,10 @@ _elm_menu_evas_object_smart_add(Eo *obj, Elm_Menu_Data *priv) elm_widget_can_focus_set(obj, EINA_FALSE); priv->location = elm_icon_add(obj); + eo_do(priv->location, elm_interface_atspi_accessible_type_set(ELM_ATSPI_TYPE_DISABLED)); priv->hv = elm_hover_add(obj); + eo_do(priv->hv, elm_interface_atspi_accessible_type_set(ELM_ATSPI_TYPE_SKIPPED)); elm_widget_mirrored_set(priv->hv, EINA_FALSE); elm_object_style_set(priv->hv, "menu/default"); @@ -680,6 +695,7 @@
[EGIT] [core/efl] master 01/02: efreet desktop tracking - fix monitoring of dirs of custom desktops
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5263e61585dcc90264790565efb8bcdfcfbf0a13 commit 5263e61585dcc90264790565efb8bcdfcfbf0a13 Author: Carsten Haitzler (Rasterman)Date: Wed Dec 2 20:29:31 2015 +0900 efreet desktop tracking - fix monitoring of dirs of custom desktops @fix this is wrong - start monitoring every/any dir in which a desktop file exists that we load a desktop file from. imagine you browse directories in efm with lots of desktop files in them - we end up monitoring lots of directories that we then rememebr and don't un-monitor. this disables monitoring of dirs from which we load a .desktop file from to fix this. --- src/bin/efreet/efreetd_cache.c | 4 +++- src/lib/efreet/efreet_desktop.c | 8 +++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/bin/efreet/efreetd_cache.c b/src/bin/efreet/efreetd_cache.c index e1896e7..6fa8854 100644 --- a/src/bin/efreet/efreetd_cache.c +++ b/src/bin/efreet/efreetd_cache.c @@ -698,7 +698,9 @@ error: static void read_lists(void) { - fill_list("extra_desktops.dirs", _extra_dirs); +// dont use extra dirs as the only way to get extra dirs is by loading a +// specific desktop file at a specific path, and this is wrong +// fill_list("extra_desktops.dirs", _extra_dirs); fill_list("extra_icons.dirs", _extra_dirs); fill_list("icons.exts", _exts); } diff --git a/src/lib/efreet/efreet_desktop.c b/src/lib/efreet/efreet_desktop.c index 3de19be..a49a975 100644 --- a/src/lib/efreet/efreet_desktop.c +++ b/src/lib/efreet/efreet_desktop.c @@ -154,7 +154,12 @@ efreet_desktop_get(const char *file) desktop = efreet_desktop_new(file); if (!desktop) return NULL; - +return desktop; + // this is wrong - start monitoring every/any dir in which a desktop file + // exists that we load a desktop file from. imagine you browse directories + // in efm with lots of desktop files in them - we end up monitoring lots + // of directories that we then rememebr and don't un-monitor. +#if 0 /* If we didn't find this file in the eet cache, add path to search path */ if (!desktop->eet) { @@ -185,6 +190,7 @@ efreet_desktop_get(const char *file) } } return desktop; +#endif } EAPI int --
[EGIT] [core/efl] master 02/02: fix efreetd to scan more subdirs for desktop and icon files
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=723634370162525cff17dc559fc6e9724f7591ae commit 723634370162525cff17dc559fc6e9724f7591ae Author: Carsten Haitzler (Rasterman)Date: Wed Dec 2 20:32:07 2015 +0900 fix efreetd to scan more subdirs for desktop and icon files we miss desktop files for apps and stuff because we dont monitor too deep a tree. this ups our tree depth to 10 levels. @fix --- src/bin/efreet/efreetd_cache.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/efreet/efreetd_cache.c b/src/bin/efreet/efreetd_cache.c index 6fa8854..b72450d 100644 --- a/src/bin/efreet/efreetd_cache.c +++ b/src/bin/efreet/efreetd_cache.c @@ -534,7 +534,7 @@ icon_changes_listen_recursive(Eina_Inarray *stack, const char *path, Eina_Bool b if (stat(path, ) == -1) return; if (eina_inarray_search(stack, , stat_cmp) >= 0) return; - if (!_check_recurse_monitor_sanity(stack, path, 8)) return; + if (!_check_recurse_monitor_sanity(stack, path, 10)) return; eina_inarray_push(stack, ); if ((!S_ISDIR(st.st_mode)) && (base)) @@ -573,7 +573,7 @@ desktop_changes_listen_recursive(Eina_Inarray *stack, const char *path, Eina_Boo if (stat(path, ) == -1) return; if (eina_inarray_search(stack, , stat_cmp) >= 0) return; - if (!_check_recurse_monitor_sanity(stack, path, 3)) return; + if (!_check_recurse_monitor_sanity(stack, path, 10)) return; eina_inarray_push(stack, ); if ((!S_ISDIR(st.st_mode)) && (base)) --
[EGIT] [core/efl] master 01/01: Evas textblock: fix height on line wrapping
herdsman pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=59e9e2ddc873dc8f0fd6fd8e1e68707d955c0401 commit 59e9e2ddc873dc8f0fd6fd8e1e68707d955c0401 Author: Daniel HirtDate: Wed Dec 2 14:37:58 2015 +0200 Evas textblock: fix height on line wrapping Line advance should finalize the line with its last item, and not the item we're currently wrapping. This fixes T1583, where some line wrapping cases would look different than their equivalent versions. @fix --- src/lib/evas/canvas/evas_object_textblock.c | 8 +++- src/tests/evas/evas_test_textblock.c| 9 + 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c index 879659c..30cfb91 100644 --- a/src/lib/evas/canvas/evas_object_textblock.c +++ b/src/lib/evas/canvas/evas_object_textblock.c @@ -3642,6 +3642,8 @@ loop_advance: static void _layout_line_advance(Ctxt *c, Evas_Object_Textblock_Format *fmt) { + Evas_Object_Textblock_Format *last_fmt = fmt; + if (c->hyphen_ti) { c->ln->items = (Evas_Object_Textblock_Item *) @@ -3652,7 +3654,11 @@ _layout_line_advance(Ctxt *c, Evas_Object_Textblock_Format *fmt) eina_list_append(c->o->hyphen_items, c->hyphen_ti); c->hyphen_ti = NULL; } - _layout_line_finalize(c, fmt); + if (c->ln->items) + { +last_fmt = _ITEM(EINA_INLIST_GET(c->ln->items)->last)->format; + } + _layout_line_finalize(c, last_fmt); _layout_line_new(c, fmt); } diff --git a/src/tests/evas/evas_test_textblock.c b/src/tests/evas/evas_test_textblock.c index ad16793..a14f599 100644 --- a/src/tests/evas/evas_test_textblock.c +++ b/src/tests/evas/evas_test_textblock.c @@ -2162,6 +2162,15 @@ START_TEST(evas_textblock_wrapping) ck_assert_int_eq(bret, ret); } + /* Check that line wrap produces the same height values as paragraph break */ + evas_object_resize(tb, 1, 100); + evas_object_textblock_text_markup_set(tb,
[EGIT] [tools/erigo] master 03/03: Fix in _drop_target_pos() cb
yakov pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=35ba7e43041dfc30365e1141db633bf6ab6dfa01 commit 35ba7e43041dfc30365e1141db633bf6ab6dfa01 Author: Yakov GoldbergDate: Wed Dec 2 15:50:00 2015 +0200 Fix in _drop_target_pos() cb Callback was not properly called for drag_data == NULL --- src/bin/gui/editor.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/bin/gui/editor.c b/src/bin/gui/editor.c index aaf06d3..6ef8359 100644 --- a/src/bin/gui/editor.c +++ b/src/bin/gui/editor.c @@ -2153,10 +2153,9 @@ _drop_target_pos(void *data, Eo *obj, Evas_Coord x, Evas_Coord y, Elm_Xdnd_Actio else { const char *drop_data = dnd_drop_data_get(); - if (!drop_data) return; /* Creation of the wdg */ - if (!_dragged_wdg) + if (drop_data && !_dragged_wdg) { _dragged_wdg = _editor_wdg_create(_active_context_get(), drop_data); } --
[EGIT] [tools/erigo] master 01/03: Change multiple if to else if
yakov pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=045800f333a315cc2280c384fc8b473ad3814283 commit 045800f333a315cc2280c384fc8b473ad3814283 Author: Yakov GoldbergDate: Wed Dec 2 10:35:00 2015 +0200 Change multiple if to else if --- src/bin/gui/editor.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bin/gui/editor.c b/src/bin/gui/editor.c index ad315b1..aaf06d3 100644 --- a/src/bin/gui/editor.c +++ b/src/bin/gui/editor.c @@ -2223,7 +2223,7 @@ _drop_target_pos(void *data, Eo *obj, Evas_Coord x, Evas_Coord y, Elm_Xdnd_Actio } di->packed = EINA_TRUE; } - if (drop_target_wdg && !strcmp(wdg_class_name_get(drop_target_wdg), DB_DEF_TABLE_CLASS)) + else if (drop_target_wdg && !strcmp(wdg_class_name_get(drop_target_wdg), DB_DEF_TABLE_CLASS)) { const Eina_List *lst = wdg_obj_container_contents_list_get(drop_target_wdg), *l; Object_Container_Item *it; @@ -2393,7 +2393,7 @@ _drop_target_pos(void *data, Eo *obj, Evas_Coord x, Evas_Coord y, Elm_Xdnd_Actio di->packed = EINA_TRUE; } } - if (drop_target_wdg && !strcmp(wdg_class_name_get(drop_target_wdg), DB_DEF_LAYOUT_CLASS)) + else if (drop_target_wdg && !strcmp(wdg_class_name_get(drop_target_wdg), DB_DEF_LAYOUT_CLASS)) { /* manually check for part's contents. * FIXME: DUMMY objects can be changed to dummy widget: the same widget but with dummy_id, @@ -2477,7 +2477,7 @@ _drop_target_pos(void *data, Eo *obj, Evas_Coord x, Evas_Coord y, Elm_Xdnd_Actio } } } - if (drop_target_wdg && !strcmp(wdg_class_name_get(drop_target_wdg), DB_DEF_NAVIFRAME_CLASS)) + else if (drop_target_wdg && !strcmp(wdg_class_name_get(drop_target_wdg), DB_DEF_NAVIFRAME_CLASS)) { /* manually check for part's contents. * FIXME: DUMMY objects can be changed to dummy widget: the same widget but with dummy_id, --
[EGIT] [tools/erigo] master 02/03: Leave cb was not correctly called when objtree was left
yakov pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=eca881051196e8f9b09e3614cd48a2a6b3e784a3 commit eca881051196e8f9b09e3614cd48a2a6b3e784a3 Author: Yakov GoldbergDate: Wed Dec 2 15:47:57 2015 +0200 Leave cb was not correctly called when objtree was left --- src/bin/gui/dnd.c | 35 +++ 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/src/bin/gui/dnd.c b/src/bin/gui/dnd.c index 1eb9dc6..0dd11d6 100644 --- a/src/bin/gui/dnd.c +++ b/src/bin/gui/dnd.c @@ -214,25 +214,28 @@ _dropleave(void *data, Evas_Object *obj) { dnd_debug("In"); _drop_info_global._enter_leave_counter--; - /* data is NULL when entering/leaving objtree. */ - if (!data) return; - Drop_Target_Info *main_wdg_ti = data; - /* if ti->drop_target is not current main widget, then it means, -* that prev drop target, box for example wasn't leaved properly. -* For example moving mouse fast from one window to another will cause "jump". -* So need to call leave properly. -* */ - if (main_wdg_ti->drop_target != main_wdg_ti->wdg) + /* data is NULL when entering/leaving objtree. */ + if (data) { -Drop_Target_Info *ti = wdg_data_get(main_wdg_ti->drop_target, DROP_TARGET); -if (ti->drop_target_leave) - ti->drop_target_leave(ti->leavedata, obj); - } - main_wdg_ti->drop_target = NULL; +Drop_Target_Info *main_wdg_ti = data; + +/* if ti->drop_target is not current main widget, then it means, + * that prev drop target, box for example wasn't leaved properly. + * For example moving mouse fast from one window to another will cause "jump". + * So need to call leave properly. + * */ +if (main_wdg_ti->drop_target != main_wdg_ti->wdg) + { + Drop_Target_Info *ti = wdg_data_get(main_wdg_ti->drop_target, DROP_TARGET); + if (ti->drop_target_leave) + ti->drop_target_leave(ti->leavedata, obj); + } +main_wdg_ti->drop_target = NULL; - if (main_wdg_ti->drop_target_leave) - main_wdg_ti->drop_target_leave(main_wdg_ti->leavedata, obj); +if (main_wdg_ti->drop_target_leave) + main_wdg_ti->drop_target_leave(main_wdg_ti->leavedata, obj); + } if (!_drop_info_global._enter_leave_counter) { --
[EGIT] [tools/eflete] master 08/62: property_group: remake tweens and apply it according to new UI/UX requirements
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=79dcad432bf544cc851d3f5987397f8b18f586b6 commit 79dcad432bf544cc851d3f5987397f8b18f586b6 Author: Vitalii VorobiovDate: Wed Nov 25 16:06:16 2015 +0200 property_group: remake tweens and apply it according to new UI/UX requirements --- data/themes/default/widgets/frame.edc| 346 +-- data/themes/default/widgets/layouts/property.edc | 39 +++ src/bin/ui/property_group.c | 120 3 files changed, 103 insertions(+), 402 deletions(-) diff --git a/data/themes/default/widgets/frame.edc b/data/themes/default/widgets/frame.edc index de40f9f..c57ed5f 100644 --- a/data/themes/default/widgets/frame.edc +++ b/data/themes/default/widgets/frame.edc @@ -132,6 +132,7 @@ group { name: "elm/frame/base/default"; clip_to: "clipper"; description { state: "default" 0.0; align: 0.5 0.0; +min: 0 150; rel1 { to: "clipper"; } @@ -752,348 +753,3 @@ group { name: "elm/frame/base/icon"; } } } - -group { name: "elm/frame/base/tween"; - images { - image: "icon-group-expand.png" COMP; - image: "icon-group-minimize.png" COMP; - image: "group-border-bg-upper.png" COMP; - } - parts { - part { name: "padding_top_left"; - type: SPACER; - scale: 1; - description { state: "default" 0.0; -align: 0.0 0.0; -FIXED_SIZE(3, 5); - } - } - part { name: "padding_bottom_right"; - type: SPACER; - scale: 1; - description { state: "default" 0.0; -align: 1.0 1.0; -FIXED_SIZE(3, 5); - } - } - part { name: "base"; - type: SPACER; - scale: 1; - description { state: "default" 0.0; -rel1 { - relative: 1.0 1.0; - to: "padding_top_left"; -} -rel2 { - relative: 0.0 0.0; - to: "padding_bottom_right"; -} - } - } - part { name: "elm.text"; - type: TEXT; - scale: 1; - description { state: "default" 0.0; -align: 0.0 0.0; -color: FN_COL_DEFAULT; -color2: 0 0 0 255; -fixed: 1 1; -rel1 { - relative: 1.0 1.0; - to_x: "button.area"; - to_y: "padding_top_left"; -} -text { - font: FN; - size: 13; - max: 1 1; - align: 0.0 0.5; -} - } - } - part { name: "elm.text.label"; - type: TEXT; - description { state: "default" 0.0; -align: 1.0 0.5; -color: FN_COL_DEFAULT; -color2: 0 0 0 255; -fixed: 1 1; -rel1.to_y: "elm.text"; -rel2 { - relative: 0.0 1.0; - to_x: "padding.right.swallow"; - to_y: "elm.text"; -} -text { - text: "Add"; - font: FN; - size: 13; - max: 1 1; - align: 0.0 0.5; -} - } - } - part { name: "bevel.upper.add"; - type: IMAGE; - description { state: "default" 0.0; -align: 1.0 0.5; -FIXED_SIZE(7, 2); -rel1 { - relative: 1.0 0.0; - to_y: "elm.text.label"; -} -rel2 { - relative: 0.0 1.0; - to_x: "padding_bottom_right"; - to_y: "elm.text.label"; -} -image { - normal: "group-border-bg-upper.png"; - border: 1 1 0 2; -} - } - } - part { name: "padding.right.swallow"; - type: SPACER; - description { state: "default" 0.0; -align: 1.0 0.5; -FIXED_SIZE(3, 3); -rel1 { - relative: 1.0 0.0; - to_y: "elm.text"; -} -rel2 { - relative: 0.0 1.0; - to_x: "elm.swallow.add"; - to_y: "elm.text"; -} - } - } - part { name: "padding_left_swallow"; - type: SPACER; - description { state: "default" 0.0; -align: 0.0 0.5; -FIXED_SIZE(3, 3); -rel1 { - relative: 1.0 0.0; - to: "elm.text"; - } -rel2.to_y: "elm.text"; - } - } - part { name: "elm.swallow.icon"; - type: SWALLOW; - description { state: "default" 0.0; -align: 0.0 0.5; -fixed: 1 1; -rel1 { - relative: 1.0 0.0; - to: "padding_left_swallow"; -} -rel2 { -
[EGIT] [tools/eflete] master 13/62: style_editor: fix genlist add items
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=25aa0193ab828e784f90e27952d91d6f7a77de4e commit 25aa0193ab828e784f90e27952d91d6f7a77de4e Author: Mykola SolyankoDate: Mon Nov 30 15:36:39 2015 +0200 style_editor: fix genlist add items --- src/bin/ui/editors/style_editor.c | 37 +++-- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/src/bin/ui/editors/style_editor.c b/src/bin/ui/editors/style_editor.c index c6b1001..5bd99b6 100644 --- a/src/bin/ui/editors/style_editor.c +++ b/src/bin/ui/editors/style_editor.c @@ -81,21 +81,29 @@ struct _Style_Tag_Entries static Elm_Genlist_Item_Class *_itc_style = NULL; static Elm_Genlist_Item_Class *_itc_tags = NULL; +static Eina_Bool is_expanded_glitem = EINA_FALSE; static void _on_popup_bt_cancel(void *data, -Evas_Object *obj __UNUSED__, +Evas_Object *obj, void *ei __UNUSED__) { Style_Editor *style_edit = (Style_Editor *)data; assert(style_edit != NULL); assert(POPUP.name_validator != NULL); - elm_validator_regexp_free(POPUP.name_validator); - POPUP.name_validator = NULL; + + if (obj && is_expanded_glitem) + { + elm_genlist_item_expanded_set(elm_genlist_selected_item_get(style_edit->glist), false); +is_expanded_glitem = EINA_FALSE; + } evas_object_del(POPUP.dialog); POPUP.dialog = NULL; + + elm_validator_regexp_free(POPUP.name_validator); + POPUP.name_validator = NULL; } static void @@ -216,19 +224,15 @@ _on_st_add_bt_ok(void *data, } glit_style = elm_genlist_item_append(style_edit->glist, _itc_style, -style_name, NULL, ELM_GENLIST_ITEM_NONE, +style_name, NULL, ELM_GENLIST_ITEM_TREE, _on_glit_selected, style_edit); elm_object_item_data_set(glit_style, (char *)style_name); - elm_genlist_item_append(style_edit->glist, _itc_tags, - "DEFAULT", glit_style, ELM_GENLIST_ITEM_NONE, - _on_glit_selected, style_edit); - TODO("Need refactoring after callback logic for modal window implementation") + elm_genlist_item_selected_set(glit_style, true); - elm_genlist_item_bring_in(glit_style, ELM_GENLIST_ITEM_SCROLLTO_IN); - elm_genlist_item_show(glit_style, ELM_GENLIST_ITEM_SCROLLTO_IN); + elm_genlist_item_bring_in(glit_style, ELM_GENLIST_ITEM_SCROLLTO_TOP); res = mem_calloc(1, sizeof(Resource)); res->name = eina_stringshare_add(style_name); @@ -281,8 +285,7 @@ _on_tag_add_bt_ok(void *data, _on_glit_selected, style_edit); elm_object_item_data_set(glit_tag,(char *)tag_name); elm_genlist_item_selected_set(glit_tag, true); - elm_genlist_item_show(style_edit->tag, ELM_GENLIST_ITEM_SCROLLTO_IN); - elm_genlist_item_bring_in(glit_tag, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE); + elm_genlist_item_bring_in(glit_tag, ELM_GENLIST_ITEM_SCROLLTO_TOP); _on_popup_bt_cancel(style_edit, NULL, NULL); @@ -361,8 +364,14 @@ _on_bt_tag_add(Style_Editor *style_edit) if (!glit_parent) { - style_name = elm_object_item_data_get(glit); - style_edit->tag = glit; +if (!elm_genlist_item_expanded_get(glit)) + { + elm_genlist_item_expanded_set(glit, true); + is_expanded_glitem = EINA_TRUE; + } + +style_name = elm_object_item_data_get(glit); +style_edit->tag = glit; } else { --
[EGIT] [tools/eflete] master 21/62: diff: add debug assertions
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=4c1efbd1d9d62c60dd12b1265da4ae86e6bd commit 4c1efbd1d9d62c60dd12b1265da4ae86e6bd Author: Andrii KroitorDate: Tue Dec 1 12:02:24 2015 +0200 diff: add debug assertions they should be removed after our side becomes stable --- src/bin/editor/diff.c | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/bin/editor/diff.c b/src/bin/editor/diff.c index ce2e155..f2c7383 100644 --- a/src/bin/editor/diff.c +++ b/src/bin/editor/diff.c @@ -163,7 +163,9 @@ diff_undo(Evas_Object *obj, Diff *diff) assert(obj != NULL); assert(diff != NULL); - return _apply(obj, >undo); + Eina_Bool res = _apply(obj, >undo); + assert(res); + return res; } Eina_Bool @@ -172,7 +174,9 @@ diff_redo(Evas_Object *obj, Diff *diff) assert(obj != NULL); assert(diff != NULL); - return _apply(obj, >redo); + Eina_Bool res = _apply(obj, >redo); + assert(res); + return res; } void --
[EGIT] [tools/eflete] master 06/62: Property: fill sound player content into property
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=5cc9fde9c93fabdc15c597728789fee85a1dbe41 commit 5cc9fde9c93fabdc15c597728789fee85a1dbe41 Author: Elizabeth ShevchenkoDate: Thu Nov 26 15:02:41 2015 +0200 Property: fill sound player content into property --- src/bin/common/signals.h | 12 +- src/bin/ui/editors/sound_editor.c | 803 +- src/bin/ui/editors/sound_editor.h | 19 + src/bin/ui/property_sound.c | 751 --- 4 files changed, 732 insertions(+), 853 deletions(-) diff --git a/src/bin/common/signals.h b/src/bin/common/signals.h index 5d08ae7..6911b8b 100644 --- a/src/bin/common/signals.h +++ b/src/bin/common/signals.h @@ -273,12 +273,20 @@ typedef struct { #define SIGNAL_SOUND_EDITOR_TAB_CLICKED "SIGNAL_SOUND_EDITOR_TAB_CLICKED" /** - * emited when sound/sounds in sound editor is/are selected. + * emited when sound/sounds in sound editor is/are added/selected. * eventinfo - NULL * * @ingroup Window */ -#define SIGNAL_SOUND_SELECTED "SIGNAL_SOUND_SELECTED" +#define SIGNAL_SOUND_ADD "SIGNAL_SOUND_ADD" + + /** + * emited when sound/sounds in sound editor is/are deleted. + * eventinfo - NULL + * + * @ingroup Window + */ +#define SIGNAL_SOUND_DEL "SIGNAL_SOUND_DEL" /** * emited when style editor tab is clicked. diff --git a/src/bin/ui/editors/sound_editor.c b/src/bin/ui/editors/sound_editor.c index 6e53ff6..da20bc3 100644 --- a/src/bin/ui/editors/sound_editor.c +++ b/src/bin/ui/editors/sound_editor.c @@ -16,31 +16,18 @@ * You should have received a copy of the GNU Lesser General Public License * along with this program; If not, see www.gnu.org/licenses/lgpl.html. */ -#define EO_BETA_API -#define EFL_BETA_API_SUPPORT -#define EFL_EO_API_SUPPORT - #include "sound_editor.h" #include "main_window.h" #include "editor.h" TODO("Rename this file to sound_manager") -#ifdef HAVE_AUDIO -TODO("Check pulse_audio on configure and add COREAUDIO support") - #define HAVE_PULSE 1 - #include -#endif - #define ITEM_WIDTH 100 #define ITEM_HEIGHT 115 -#define UPDATE_FREQUENCY 1.0 / 30.0 -#define TONE_PLAYING_DURATION 2.0 #define SND_EDIT_KEY "sound_editor_key" typedef struct _Sound_Editor Sound_Editor; typedef struct _Search_Data Search_Data; -typedef struct _Item Item; typedef struct _Sound Sound; struct _Sound @@ -50,16 +37,6 @@ struct _Sound int tone_frq; }; -struct _Item -{ - Eina_Stringshare *sound_name; - Eina_Stringshare *src; - Eina_Stringshare *format; - Edje_Edit_Sound_Comp comp; - double rate; - int tone_frq; -}; - struct _Search_Data { Evas_Object *search_entry; @@ -75,48 +52,14 @@ struct _Sound_Editor Evas_Object *tone_entry, *frq_entry; Elm_Validator_Regexp *tone_validator, *frq_validator; Evas_Object *gengrid; - Evas_Object *sample_box; - Evas_Object *tone_box; Evas_Object *markup; - Evas_Object *player_markup; Elm_Object_Item *tone; Search_Data sound_search_data; Evas_Object *check; const char *selected; const char *snd_src; -#ifdef HAVE_AUDIO - struct { - int offset, length; - const void *data; - Ecore_Audio_Vio vio; - Eo *in, *out; - Eina_Binbuf *buf; - } io; -#endif - struct { - Evas_Object *teg; - Evas_Object *tone_name; - Evas_Object *tone_frq; - Evas_Object *tone_duration; - Evas_Object *file_name; - Evas_Object *duration; - Evas_Object *type; - Evas_Object *size; - Evas_Object *comp; - Evas_Object *quality; - } snd_data; - - Ecore_Timer *timer; - Evas_Object *rewind; - Evas_Object *play; - Evas_Object *pause; Evas_Object *fs_win; - Eina_Bool decoration : 1; - Eina_Bool playing : 1; - Eina_Bool stopped : 1; - Eina_Bool switched : 1; - Eina_Bool added : 1; }; static Elm_Gengrid_Item_Class *gic = NULL, *ggic = NULL; @@ -152,597 +95,13 @@ _grid_group_label_get(void *data, } static void -_sound_editor_del(Sound_Editor *edit) -{ - assert(edit != NULL); - -#ifdef HAVE_AUDIO - ecore_audio_shutdown(); -#endif - elm_gengrid_item_class_free(gic); - elm_gengrid_item_class_free(ggic); - evas_object_data_del(edit->markup, SND_EDIT_KEY); - eina_stringshare_del(edit->selected); - free(edit); -} - -#ifdef HAVE_AUDIO -static int -_snd_file_seek(void *data, Eo *eo_obj EINA_UNUSED, int offset, int whence) -{ - Sound_Editor *vf = data; - - assert(vf != NULL); - - switch (whence) - { - case SEEK_SET: - vf->io.offset = offset; - break; - case SEEK_CUR: - vf->io.offset += offset; - break; - case SEEK_END: - vf->io.offset = vf->io.length + offset; - break; - default: - break; - } - return vf->io.offset; -} - -static int -_snd_file_read(void *data, Eo *eo_obj EINA_UNUSED, void *buffer, int len) -{ - Sound_Editor *vf = data; - -
[EGIT] [tools/eflete] master 38/62: Merge "editor: implement signal blockers"
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=2ed0c263aba2b021e535f8f79992e9caf1598440 commit 2ed0c263aba2b021e535f8f79992e9caf1598440 Merge: a286339 dbf1509 Author: Gerrit UserDate: Wed Dec 2 10:24:21 2015 +0200 Merge "editor: implement signal blockers" src/bin/editor/editor_general.c | 2 +- src/bin/editor/editor_group.c | 7 --- src/bin/editor/editor_macro.h | 26 +- src/bin/editor/editor_part.c| 33 ++--- src/bin/editor/editor_states.c | 11 ++- src/bin/editor/editor_text.c| 3 ++- 6 files changed, 44 insertions(+), 38 deletions(-) --
[EGIT] [tools/eflete] master 60/62: UTC: delete test for nonexistent API
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=6483917f60acc4c556b8f52e43d47c07a0bf71ba commit 6483917f60acc4c556b8f52e43d47c07a0bf71ba Author: Vyacheslav ReutskiyDate: Wed Dec 2 14:42:16 2015 +0200 UTC: delete test for nonexistent API Change-Id: I78d6db087a8886f14eb880525dba3ae5ded7d9fa --- tests/Makefile.am | 2 - tests/test_ui_workspace/test_ui_workspace.c| 4 - tests/test_ui_workspace/test_ui_workspace.h| 6 - .../workspace_edit_object_part_state_add.c | 147 --- .../workspace_edit_object_part_state_del.c | 158 - 5 files changed, 317 deletions(-) diff --git a/tests/Makefile.am b/tests/Makefile.am index 11a57b3..1ebe7a6 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -388,8 +388,6 @@ ui_workspace_test_SOURCES = \ ../tests/test_ui_workspace/workspace_edit_object_part_add.c \ ../tests/test_ui_workspace/workspace_edit_object_part_below.c \ ../tests/test_ui_workspace/workspace_edit_object_part_del.c \ -../tests/test_ui_workspace/workspace_edit_object_part_state_add.c \ -../tests/test_ui_workspace/workspace_edit_object_part_state_del.c \ ../tests/test_ui_workspace/workspace_edit_object_part_state_set.c \ ../tests/test_ui_workspace/workspace_edit_object_recalc.c \ ../tests/test_ui_workspace/workspace_edit_object_visible_set.c \ diff --git a/tests/test_ui_workspace/test_ui_workspace.c b/tests/test_ui_workspace/test_ui_workspace.c index 829bccc..c25bcf3 100644 --- a/tests/test_ui_workspace/test_ui_workspace.c +++ b/tests/test_ui_workspace/test_ui_workspace.c @@ -33,10 +33,6 @@ Suite* test_suite (void) { tcase_add_test(tcase, workspace_edit_object_part_del_test_p); tcase_add_test(tcase, workspace_edit_object_part_restack_test_p1); tcase_add_test(tcase, workspace_edit_object_part_restack_test_p2); - tcase_add_test(tcase, workspace_edit_object_part_state_add_test_p); - tcase_add_test(tcase, workspace_edit_object_part_state_add_test_p1); - tcase_add_test(tcase, workspace_edit_object_part_state_del_test_p); - tcase_add_test(tcase, workspace_edit_object_part_state_del_test_p1); tcase_add_test(tcase, workspace_edit_object_part_state_set_test_n2); tcase_add_test(tcase, workspace_edit_object_part_state_set_test_p); tcase_add_test(tcase, workspace_edit_object_recalc_test_p); diff --git a/tests/test_ui_workspace/test_ui_workspace.h b/tests/test_ui_workspace/test_ui_workspace.h index 64176f8..10bb57d 100644 --- a/tests/test_ui_workspace/test_ui_workspace.h +++ b/tests/test_ui_workspace/test_ui_workspace.h @@ -37,12 +37,6 @@ void workspace_edit_object_part_below_test_p(int); void workspace_edit_object_part_del_test_p(int); void workspace_edit_object_part_restack_test_p1(int); void workspace_edit_object_part_restack_test_p2(int); -void workspace_edit_object_part_state_add_test_n(int); -void workspace_edit_object_part_state_add_test_n1(int); -void workspace_edit_object_part_state_add_test_p(int); -void workspace_edit_object_part_state_add_test_p1(int); -void workspace_edit_object_part_state_del_test_p(int); -void workspace_edit_object_part_state_del_test_p1(int); void workspace_edit_object_part_state_set_test_n2(int); void workspace_edit_object_part_state_set_test_p(int); void workspace_edit_object_recalc_test_p(int); diff --git a/tests/test_ui_workspace/workspace_edit_object_part_state_add.c b/tests/test_ui_workspace/workspace_edit_object_part_state_add.c deleted file mode 100644 index 426621b..000 --- a/tests/test_ui_workspace/workspace_edit_object_part_state_add.c +++ /dev/null @@ -1,147 +0,0 @@ -/** - * Edje Theme Editor - * Copyright (C) 2013-2014 Samsung Electronics. - * - * This file is part of Edje Theme Editor. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; If not, see www.gnu.org/licenses/lgpl.html. - */ - -#include "test_ui_workspace.h" - -/** - * @addtogroup ui_workspace_test - * @{ - * @addtogroup workspace_edit_object_part_state_add - * @{ - * ui_workspace - * - * @} -*/ - -/** - * @addtogroup workspace_edit_object_part_state_add - * @{ - * - * workspace_edit_object_part_state_add - * workspace_edit_object_part_state_add_test_p - * - * @precondition - * @step 1 initialize elementary library - * @step 2 load extenstion theme from EFLETE_THEME file - * @step 3 create parent window - * @step 4 Mmap edj file. - * @step 5 create workspace object -
[EGIT] [tools/eflete] master 50/62: editor: fix default box layout value
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=647c00cc44f4ae91a42420db0ae701b3e4a16939 commit 647c00cc44f4ae91a42420db0ae701b3e4a16939 Author: Andrii KroitorDate: Wed Dec 2 12:05:18 2015 +0200 editor: fix default box layout value --- src/bin/editor/editor_part.c | 6 ++ src/bin/editor/editor_states.c | 6 ++ 2 files changed, 12 insertions(+) diff --git a/src/bin/editor/editor_part.c b/src/bin/editor/editor_part.c index 62b6393..adaffd2 100644 --- a/src/bin/editor/editor_part.c +++ b/src/bin/editor/editor_part.c @@ -624,6 +624,12 @@ editor_part_add(Evas_Object *edit_object, Change *change, Eina_Bool merge __UNUS return false; editor_save(edit_object); + + /* fix incorrect default values */ + TODO("Fix edje_edit") + if (type == EDJE_PART_TYPE_BOX) + edje_edit_state_box_layout_set(edit_object, part_name, "default", 0.0, "horizontal"); + _editor_project_changed(); event_info = eina_stringshare_add(part_name); if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_PART_ADDED, (void *)event_info); diff --git a/src/bin/editor/editor_states.c b/src/bin/editor/editor_states.c index 1881d68..08f1504 100644 --- a/src/bin/editor/editor_states.c +++ b/src/bin/editor/editor_states.c @@ -325,6 +325,12 @@ editor_state_add(Evas_Object *edit_object, Change *change, Eina_Bool merge __UNU } if (!edje_edit_state_add(edit_object, part_name, state_name, state_val)) return false; + + /* fix incorrect default values */ + TODO("Fix edje_edit") + if (edje_edit_part_type_get(edit_object, part_name) == EDJE_PART_TYPE_BOX) + edje_edit_state_box_layout_set(edit_object, part_name, state_name, state_val, "horizontal"); + _editor_project_changed(); event_info.part_name = eina_stringshare_add(part_name); event_info.state_name = eina_stringshare_printf("%s %.2f", state_name, state_val); --
[EGIT] [tools/eflete] master 47/62: Ewe ruler: use Evas_Object* for elm_box_add.
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=c94a857bd6d5a45f300b3010911f6e563ecf8c99 commit c94a857bd6d5a45f300b3010911f6e563ecf8c99 Author: Mykyta BiliavskyiDate: Tue Nov 10 17:08:28 2015 + Ewe ruler: use Evas_Object* for elm_box_add. --- src/lib/ewe_ruler.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/ewe_ruler.c b/src/lib/ewe_ruler.c index e3ca6ba..b9b6331 100644 --- a/src/lib/ewe_ruler.c +++ b/src/lib/ewe_ruler.c @@ -409,7 +409,7 @@ _ewe_ruler_scale_add(Eo *obj, sd->scales = eina_list_append(sd->scales, ret); - ret->box = elm_box_add(evas_object_evas_get(obj)); + ret->box = elm_box_add(obj); elm_box_align_set(ret->box, 0.0, 0.0); elm_box_horizontal_set(ret->box, sd->horizontal); evas_object_smart_member_add(ret->box, obj); --
[EGIT] [tools/eflete] master 45/62: Main window: hide History block controls.
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=af991782148a2e0bb62d081966fbead5235ba870 commit af991782148a2e0bb62d081966fbead5235ba870 Author: Mykyta BiliavskyiDate: Fri Nov 13 13:10:33 2015 + Main window: hide History block controls. When Eflete lunched the prorperty layout is shown, and History content should be hidden. @fix --- src/bin/ui/main_window.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/ui/main_window.c b/src/bin/ui/main_window.c index 001fe83..2f27e62 100644 --- a/src/bin/ui/main_window.c +++ b/src/bin/ui/main_window.c @@ -190,6 +190,8 @@ ui_main_window_add(void) ap.block.property = ui_property_add(ap.win); elm_layout_content_set(ap.block.right_top, NULL, ap.block.property); ap.block.history = history_ui_add(); + evas_object_hide(ap.block.history); + elm_layout_content_set(ap.block.right_top, NULL, ap.block.property); elm_object_part_content_set(ap.panes.right, "right", ap.block.right_top); ap.menu = ui_menu_add(); --
[EGIT] [tools/eflete] master 46/62: Config: fix set projects dir path.
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=2f239c23bf12ddeb88e6d9a6886b7ee32b37f732 commit 2f239c23bf12ddeb88e6d9a6886b7ee32b37f732 Author: Mykyta BiliavskyiDate: Fri Nov 13 11:20:25 2015 + Config: fix set projects dir path. In case if projects dir does not exists - all files sectors will be displayed with the NULL path. In this commit added additional check the directory exist. @fix --- src/bin/config/config.c | 11 +++ 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/bin/config/config.c b/src/bin/config/config.c index 3e0bb68..bd2e950 100644 --- a/src/bin/config/config.c +++ b/src/bin/config/config.c @@ -335,10 +335,13 @@ _profile_update(Profile *prof) char *env_path = getenv("EFLETE_PROJECTS_DIR"); prof->version = PROFILE_VERSION; - if ((!prof->general.projects_folder) || (env_path)) - prof->general.projects_folder = env_path != NULL ? -strdup(env_path): -strdup(getenv("HOME")); + if ((!env_path) || (!ecore_file_exists(env_path))) + env_path = getenv("HOME"); + + if ((!prof->general.projects_folder) || + (!ecore_file_exists(prof->general.projects_folder))) + prof->general.projects_folder = strdup(env_path); + if (!prof->shortcuts) prof->shortcuts = _default_shortcuts_get(); } --
[EGIT] [tools/eflete] master 53/62: Merge "editor: fix default box layout value"
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=725eb28f9108d7e570abe05b9972351e70b88db5 commit 725eb28f9108d7e570abe05b9972351e70b88db5 Merge: 76d6ba3 647c00c Author: Gerrit UserDate: Wed Dec 2 15:46:38 2015 +0200 Merge "editor: fix default box layout value" src/bin/editor/editor_part.c | 6 ++ src/bin/editor/editor_states.c | 6 ++ 2 files changed, 12 insertions(+) --
[EGIT] [tools/eflete] master 36/62: Merge "diff: add FUNCTION_TYPE_SIGNALSBLOCK"
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=b6916e24067eb6836b4a58c9a6a8ee767990c97b commit b6916e24067eb6836b4a58c9a6a8ee767990c97b Merge: 6242fe6 63821bd Author: Gerrit UserDate: Wed Dec 2 10:24:13 2015 +0200 Merge "diff: add FUNCTION_TYPE_SIGNALSBLOCK" src/bin/editor/diff.c | 5 + src/bin/editor/diff.h | 1 + 2 files changed, 6 insertions(+) --
[EGIT] [tools/eflete] master 40/62: Merge "group_navigator: use editor api to add and to delete parts"
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=2d183dfbecc7fc0c305ba08180273d25c789ceab commit 2d183dfbecc7fc0c305ba08180273d25c789ceab Merge: a09bdd9 a68223e Author: Gerrit UserDate: Wed Dec 2 10:24:29 2015 +0200 Merge "group_navigator: use editor api to add and to delete parts" src/bin/ui/group_navigator.c | 102 +-- 1 file changed, 80 insertions(+), 22 deletions(-) --
[EGIT] [tools/eflete] master 54/62: Merge "group_navigator: add stubs for part_item add/del"
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=9e0f98d7b6692e426def5a80e147d24efd92d5ef commit 9e0f98d7b6692e426def5a80e147d24efd92d5ef Merge: 725eb28 8891681 Author: Gerrit UserDate: Wed Dec 2 15:46:58 2015 +0200 Merge "group_navigator: add stubs for part_item add/del" src/bin/ui/group_navigator.c | 30 ++ 1 file changed, 26 insertions(+), 4 deletions(-) --
[EGIT] [tools/eflete] master 43/62: Sound editor: don't show controls, until editor tab isn't choosen.
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=f0e24f3d99aff9e6492cca415f6904316d1d24d4 commit f0e24f3d99aff9e6492cca415f6904316d1d24d4 Author: Mykyta BiliavskyiDate: Mon Nov 23 10:24:32 2015 + Sound editor: don't show controls, until editor tab isn't choosen. --- src/bin/ui/editors/sound_editor.c | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/bin/ui/editors/sound_editor.c b/src/bin/ui/editors/sound_editor.c index da20bc3..6aeca4e 100644 --- a/src/bin/ui/editors/sound_editor.c +++ b/src/bin/ui/editors/sound_editor.c @@ -713,16 +713,13 @@ _sound_editor_main_markup_create(Sound_Editor *edit) edit->markup = elm_layout_add(ap.win); elm_layout_theme_set(edit->markup, "layout", "sound_editor", "default"); evas_object_size_hint_weight_set(edit->markup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_show(edit->markup); evas_object_data_set(edit->markup, SND_EDIT_KEY, edit); evas_object_event_callback_add(edit->markup, EVAS_CALLBACK_DEL, _on_sound_editor_del, edit); btn = elm_button_add(edit->markup); evas_object_smart_callback_add(btn, "clicked", _on_delete_clicked_cb, edit); - evas_object_show(btn); elm_object_part_content_set(edit->markup, "swallow.btn.del", btn); - evas_object_show(btn); ic = elm_icon_add(btn); elm_icon_standard_set(ic, "minus"); @@ -766,7 +763,8 @@ _sound_editor_main_markup_create(Sound_Editor *edit) break; } search = _sound_editor_search_field_create(edit->markup); - elm_object_part_content_set(edit->markup, "swallow.search_area", search); + evas_object_hide(search); + elm_layout_content_set(edit->markup, "swallow.search_area", search); evas_object_smart_callback_add(search, "changed", _search_changed, edit); evas_object_smart_callback_add(search, "activated", _search_nxt_gd_item, edit); evas_object_smart_callback_add(edit->gengrid, "pressed", _search_reset_cb, --
[EGIT] [tools/eflete] master 24/62: diff: add FUNCTION_TYPE_SIGNALSBLOCK
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=63821bd2703fb749b21adbfe6d170181c96fe0ff commit 63821bd2703fb749b21adbfe6d170181c96fe0ff Author: Andrii KroitorDate: Tue Dec 1 14:33:29 2015 +0200 diff: add FUNCTION_TYPE_SIGNALSBLOCK --- src/bin/editor/diff.c | 5 + src/bin/editor/diff.h | 1 + 2 files changed, 6 insertions(+) diff --git a/src/bin/editor/diff.c b/src/bin/editor/diff.c index f2c7383..58e56b0 100644 --- a/src/bin/editor/diff.c +++ b/src/bin/editor/diff.c @@ -20,6 +20,7 @@ #include "diff.h" #include "change.h" +typedef Eina_Bool (* function_type_signalsblock) (Change*); typedef Eina_Bool (* function_type_int) (Evas_Object *, Change*, Eina_Bool, int); typedef Eina_Bool (* function_type_string_string_double_double) (Evas_Object *, Change*, Eina_Bool, const char *, const char *, double, double); @@ -77,6 +78,8 @@ _apply(Evas_Object *obj, Function_Info *fi) { case FUNCTION_TYPE_NONE: return true; + case FUNCTION_TYPE_SIGNALSBLOCK: + return ((function_type_signalsblock)fi->function)(NULL); case FUNCTION_TYPE_INT: return ((function_type_int)fi->function)(obj, NULL, false, fi->args.type_i.i1); case FUNCTION_TYPE_STRING_STRING_DOUBLE_DOUBLE: @@ -191,6 +194,7 @@ diff_update(Diff *diff, Diff *new_diff) { case FUNCTION_TYPE_NONE: case FUNCTION_TYPE_INT: + case FUNCTION_TYPE_SIGNALSBLOCK: break; case FUNCTION_TYPE_STRING_STRING_DOUBLE_DOUBLE: eina_stringshare_del(diff->redo.args.type_ssdd.s1); @@ -340,6 +344,7 @@ diff_free(Diff *diff) { case FUNCTION_TYPE_NONE: case FUNCTION_TYPE_INT: + case FUNCTION_TYPE_SIGNALSBLOCK: break; case FUNCTION_TYPE_STRING_STRING_DOUBLE_DOUBLE: eina_stringshare_del(diff->redo.args.type_ssdd.s1); diff --git a/src/bin/editor/diff.h b/src/bin/editor/diff.h index 17cd1f3..09e5fa9 100644 --- a/src/bin/editor/diff.h +++ b/src/bin/editor/diff.h @@ -23,6 +23,7 @@ typedef enum { FUNCTION_TYPE_NONE = 0, + FUNCTION_TYPE_SIGNALSBLOCK, FUNCTION_TYPE_INT, FUNCTION_TYPE_STRING_STRING_DOUBLE_DOUBLE, FUNCTION_TYPE_STRING_STRING_DOUBLE_INT, --
[EGIT] [tools/eflete] master 03/62: groupedit: hilight item when it selected
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=a219d13fca2be9a6e47a931c3eb02134316f25e5 commit a219d13fca2be9a6e47a931c3eb02134316f25e5 Author: Vyacheslav ReutskiyDate: Thu Nov 26 10:11:52 2015 +0200 groupedit: hilight item when it selected Change-Id: Ia16728cce487be399114bb673740df3db3330cfc --- src/bin/ui/workspace/groupedit.c | 30 +++--- src/bin/ui/workspace/groupedit.h | 4 +--- src/bin/ui/workspace/groupedit_calc.c| 25 ++--- src/bin/ui/workspace/groupedit_private.h | 4 src/bin/ui/workspace/workspace.c | 6 -- 5 files changed, 54 insertions(+), 15 deletions(-) diff --git a/src/bin/ui/workspace/groupedit.c b/src/bin/ui/workspace/groupedit.c index 562efcc..cd5a7ed 100644 --- a/src/bin/ui/workspace/groupedit.c +++ b/src/bin/ui/workspace/groupedit.c @@ -554,6 +554,9 @@ groupedit_edit_object_part_select(Evas_Object *obj, const char *part) else gp = NULL; + if (sd->selected && sd->selected->current_item) + elm_object_signal_emit(sd->selected->current_item->layout, "border,part_item,hilight,off", "eflete"); + if (!sd->separated) sd->selected = gp; else { @@ -659,20 +662,33 @@ groupedit_zoom_factor_set(Evas_Object *obj, double factor) return true; } -Eina_Bool +void groupedit_edit_object_part_item_selected_set(Evas_Object *obj, Eina_Stringshare *item_name, - Eina_Bool selected __UNUSED__) + Eina_Bool selected) { + Groupedit_Part *gp; + Groupedit_Item *item; WS_GROUPEDIT_DATA_GET(obj, sd); - Groupedit_Part *gp = sd->selected; - if (!gp) return false; + gp = sd->selected; + if (!gp) return; - assert(item_name != NULL); + if (!item_name) return; + item = _part_item_search(gp->items, item_name); + if (gp->current_item) + elm_object_signal_emit(gp->current_item->layout, "border,part_item,hilight,off", "eflete"); - TODO("need to find a item in the list and emit signal for hilight it. NOT RECALC") - return false; + if (selected) + { +elm_object_signal_emit(item->layout, "border,part_item,hilight,on", "eflete"); +gp->current_item = item; + } + else + { +elm_object_signal_emit(item->layout, "border,part_item,hilight,off", "eflete"); +gp->current_item = NULL; + } } #undef MY_CLASS_NAME diff --git a/src/bin/ui/workspace/groupedit.h b/src/bin/ui/workspace/groupedit.h index a90692b..d7445d2 100644 --- a/src/bin/ui/workspace/groupedit.h +++ b/src/bin/ui/workspace/groupedit.h @@ -397,11 +397,9 @@ groupedit_zoom_factor_set(Evas_Object *obj, double factor); * @param item_name The name of item, which selection should be changed. * @param selected If EINA_TRUE - item will be selected, otherwise unselected. * - * @return EINA_FALSE on failure, EINA_TRUE on success. - * * @ingroup Groupedit */ -Eina_Bool +void groupedit_edit_object_part_item_selected_set(Evas_Object *obj, Eina_Stringshare *item_name, Eina_Bool selected); diff --git a/src/bin/ui/workspace/groupedit_calc.c b/src/bin/ui/workspace/groupedit_calc.c index 38b2ce6..da881fe 100644 --- a/src/bin/ui/workspace/groupedit_calc.c +++ b/src/bin/ui/workspace/groupedit_calc.c @@ -37,7 +37,6 @@ _part_draw_add(Ws_Groupedit_Smart_Data *sd, Part_ *part); static void _move_border_to_top(Ws_Groupedit_Smart_Data *sd); - static void _part_draw_del(Ws_Groupedit_Smart_Data *sd, Part_ *part); @@ -311,6 +310,26 @@ _parts_list_find(Eina_List *parts, const char *part) return NULL; } +Groupedit_Item * +_part_item_search(Eina_List *items, const char *item_name) +{ + Eina_List *l; + Groupedit_Item *item; + + assert(items != NULL); + assert(item_name != NULL); + + EINA_LIST_FOREACH(items, l, item) + { +/* we are sure that all strings are stringshare, and for compare two + * strings enough compare they pointers */ +if ((item->name == item_name)) + return item; + } + return NULL; +} + + void _selected_item_return_to_place(Ws_Groupedit_Smart_Data *sd) { @@ -544,7 +563,7 @@ _part_table_add(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp) assert(gp->container == NULL); gp->container = evas_object_table_add(sd->e); - elm_box_pack_end(gp->draw, gp->container); + elm_box_pack_before(gp->draw, gp->container, gp->proxy_part); evas_object_show(gp->container); table = edje_object_part_object_get(sd->group->edit_object, gp->part->name); @@ -649,7 +668,7 @@ _part_box_add(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp) fprintf(stdout, "%s\n", gp->part->name); gp->container = evas_object_box_add(sd->e); - elm_box_pack_end(gp->draw, gp->container); +
[EGIT] [tools/eflete] master 20/62: groupedit: use hint weight for for expand object instead hint min/max
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=2bdfdc876dcb3037e91101087ba2f2dbfd1e89b1 commit 2bdfdc876dcb3037e91101087ba2f2dbfd1e89b1 Author: Vyacheslav ReutskiyDate: Fri Nov 27 11:32:13 2015 +0200 groupedit: use hint weight for for expand object instead hint min/max Change-Id: Ia8551569e9a252089bc1e42b7813a3885c4953e0 --- src/bin/ui/workspace/groupedit_calc.c | 31 --- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/bin/ui/workspace/groupedit_calc.c b/src/bin/ui/workspace/groupedit_calc.c index 22e886b..1c13917 100644 --- a/src/bin/ui/workspace/groupedit_calc.c +++ b/src/bin/ui/workspace/groupedit_calc.c @@ -808,8 +808,6 @@ _part_recalc_apply(Ws_Groupedit_Smart_Data *sd, { Evas_Coord x, y, xe, ye, w, h; Evas_Coord part_x, part_y, abs_x, abs_y; - Evas_Coord ro_w, ro_h; - const Evas_Object *ro; assert(sd != NULL); assert(gp != NULL); @@ -820,24 +818,23 @@ _part_recalc_apply(Ws_Groupedit_Smart_Data *sd, evas_object_resize(gp->draw, w, h); evas_object_move(gp->draw, (x * sd->zoom_factor + xe + offset_x), (y * sd->zoom_factor + ye + offset_y)); - evas_object_size_hint_min_set(gp->layout, w, h); - evas_object_size_hint_max_set(gp->layout, w, h); - if (gp->container) evas_object_size_hint_max_set(gp->container, w, h); - - evas_object_resize(gp->container, w, h); - evas_object_move(gp->container, (x * sd->zoom_factor + xe + offset_x), - (y * sd->zoom_factor + ye + offset_y)); - - /* set the proxy part size */ - ro = edje_object_part_object_get(sd->group->edit_object, gp->part->name); - evas_object_geometry_get(ro, NULL, NULL, _w, _h); - evas_object_size_hint_min_set(gp->proxy_part, ro_w, ro_h); - evas_object_size_hint_max_set(gp->proxy_part, ro_w, ro_h); + if (gp->container) + { +evas_object_resize(gp->container, w, h); +evas_object_move(gp->container, (x * sd->zoom_factor + xe + offset_x), + (y * sd->zoom_factor + ye + offset_y)); + } if (gp->part->type == EDJE_PART_TYPE_TEXT) { double x_align, y_align; +const Evas_Object *ro; +Evas_Coord ro_w, ro_h; +ro = edje_object_part_object_get(sd->group->edit_object, gp->part->name); +evas_object_geometry_get(ro, NULL, NULL, _w, _h); +evas_object_resize(gp->proxy_part, ro_w, ro_h); + x_align = edje_edit_state_text_align_x_get(sd->group->edit_object, gp->part->name, @@ -1006,12 +1003,16 @@ _part_draw_add(Ws_Groupedit_Smart_Data *sd, Part_ *part) gp->draw = elm_box_add(sd->parent); \ elm_box_layout_set(gp->draw, evas_object_box_layout_stack, NULL, NULL); \ gp->layout = elm_layout_add(sd->parent); \ + evas_object_size_hint_weight_set(gp->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); \ + evas_object_size_hint_align_set(gp->layout, EVAS_HINT_FILL, EVAS_HINT_FILL); \ elm_layout_theme_set(gp->layout, "layout", "groupview", "default"); \ evas_object_show(gp->layout); \ elm_box_pack_end(gp->draw, gp->layout); #define PART_VIEW_PROXY_SET() \ gp->proxy_part = evas_object_image_filled_add(sd->e); \ + evas_object_size_hint_weight_set(gp->proxy_part, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); \ + evas_object_size_hint_align_set(gp->proxy_part, EVAS_HINT_FILL, EVAS_HINT_FILL); \ elm_box_pack_end(gp->draw, gp->proxy_part); \ evas_object_show(gp->proxy_part); \ --
[EGIT] [tools/eflete] master 17/62: groupedit: delete unused code for color set
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=47af8b86c9fef36a792ee06651f7e9e47d2a7823 commit 47af8b86c9fef36a792ee06651f7e9e47d2a7823 Author: Vyacheslav ReutskiyDate: Thu Nov 26 15:08:23 2015 +0200 groupedit: delete unused code for color set How groupedit used proxy almost for all parts, besides image. So need only main color set to object. Change-Id: I6d52a9b30c550b614a4b871d64d7d21d7cd6e8b3 --- src/bin/ui/workspace/groupedit_calc.c | 68 ++- 1 file changed, 10 insertions(+), 58 deletions(-) diff --git a/src/bin/ui/workspace/groupedit_calc.c b/src/bin/ui/workspace/groupedit_calc.c index da881fe..638e057 100644 --- a/src/bin/ui/workspace/groupedit_calc.c +++ b/src/bin/ui/workspace/groupedit_calc.c @@ -1130,81 +1130,33 @@ _move_border_to_top(Ws_Groupedit_Smart_Data *sd) } static inline void -_colors_get(Groupedit_Part *gp, Evas_Object *edit_obj, const char *state, double value, -int *r, int *g, int *b, int *a, -int *r2, int *g2, int *b2, int *a2, -int *r3, int *g3, int *b3, int *a3) +_color_apply(Groupedit_Part *gp, Evas_Object *edit_obj, const char *state, double value) { + int r, g, b, a; int cr, cg, cb, ca; - int cr2, cg2, cb2, ca2; - int cr3, cg3, cb3, ca3; Eina_Stringshare *color_class; assert(gp != NULL); assert(edit_obj != NULL); assert(state != NULL); - if (r || g || b || a) - edje_edit_state_color_get(edit_obj, gp->part->name, state, value, r, g, b, a); - if (r2 || g2 || b2 || a2) - edje_edit_state_color2_get(edit_obj, gp->part->name, state, value, r2, g2, b2, a2); - if (r3 || g3 || b3 || a3) - edje_edit_state_color3_get(edit_obj, gp->part->name, state, value, r3, g3, b3, a3); - + edje_edit_state_color_get(edit_obj, gp->part->name, state, value, , , , ); color_class = edje_edit_state_color_class_get(edit_obj, gp->part->name, state, value); if (color_class) { if (edje_edit_color_class_colors_get(edit_obj, color_class, , , , , - , , , , - , , , )) + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL)) { - if (r) *r = ((cr + 1) * *r) >> 8; - if (g) *g = ((cg + 1) * *g) >> 8; - if (b) *b = ((cb + 1) * *b) >> 8; - if (a) *a = ((ca + 1) * *a) >> 8; - - if (r2) *r2 = ((cr2 + 1) * *r2) >> 8; - if (g2) *g2 = ((cg2 + 1) * *g2) >> 8; - if (b2) *b2 = ((cb2 + 1) * *b2) >> 8; - if (a2) *a2 = ((ca2 + 1) * *a2) >> 8; - - if (r3) *r3 = ((cr3 + 1) * *r3) >> 8; - if (g3) *g3 = ((cg3 + 1) * *g3) >> 8; - if (b3) *b3 = ((cb3 + 1) * *b3) >> 8; - if (a3) *a3 = ((ca3 + 1) * *a3) >> 8; + r = ((cr + 1) * r) >> 8; + g = ((cg + 1) * g) >> 8; + b = ((cb + 1) * b) >> 8; + a = ((ca + 1) * a) >> 8; } eina_stringshare_del(color_class); } - - if (a) evas_color_argb_premul(*a, r, g, b); - if (a2) evas_color_argb_premul(*a2, r2, g2, b2); - if (a3) evas_color_argb_premul(*a3, r3, g3, b3); -} - -static inline void -_color_apply(Groupedit_Part *gp, Evas_Object *edit_obj, const char *state, double value) -{ - int r, g, b, a; - int r2, g2, b2, a2; - int r3, g3, b3, a3; - - assert(gp != NULL); - assert(edit_obj != NULL); - assert(state != NULL); - - if (gp->part->type == EDJE_PART_TYPE_TEXT || gp->part->type == EDJE_PART_TYPE_TEXTBLOCK) - _colors_get(gp, edit_obj, state, value, , , , , , , , , , , , ); - else - _colors_get(gp, edit_obj, state, value, , , , , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); - + evas_color_argb_premul(a, , , ); evas_object_color_set(gp->draw, r, g, b, a); - if (gp->part->type == EDJE_PART_TYPE_TEXT || gp->part->type == EDJE_PART_TYPE_TEXTBLOCK) - { -evas_object_text_shadow_color_set(gp->draw, r2, g2, b2, a2); -evas_object_text_outline_color_set(gp->draw, r3, g3, b3, a3); -evas_object_text_glow_color_set(gp->draw, r2, g2, b2, a2); -evas_object_text_glow2_color_set(gp->draw, r3, g3, b3, a3); - } } static void --
[EGIT] [tools/eflete] master 62/62: Merge branch 'master' from internal eflete repo
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=a503b8b5abab19ba7fa41bc03fda1690bea13146 commit a503b8b5abab19ba7fa41bc03fda1690bea13146 Merge: 6b9f758 92e01ea Author: Vyacheslav ReutskiyDate: Wed Dec 2 16:10:32 2015 +0200 Merge branch 'master' from internal eflete repo configure.ac | 8 +- data/themes/default/widgets/frame.edc | 346 + data/themes/default/widgets/layout.edc | 54 +- data/themes/default/widgets/layouts/property.edc | 39 + src/bin/common/signals.h | 12 +- src/bin/common/widget_macro.h | 1 - src/bin/config/config.c| 11 +- src/bin/editor/diff.c | 13 +- src/bin/editor/diff.h | 1 + src/bin/editor/editor.h| 6 + src/bin/editor/editor_general.c| 41 +- src/bin/editor/editor_group.c | 7 +- src/bin/editor/editor_macro.h | 26 +- src/bin/editor/editor_part.c | 43 +- src/bin/editor/editor_states.c | 21 +- src/bin/editor/editor_text.c | 3 +- src/bin/ui/editors/sound_editor.c | 809 + src/bin/ui/editors/sound_editor.h | 19 + src/bin/ui/editors/style_editor.c | 37 +- src/bin/ui/group_navigator.c | 134 +++- src/bin/ui/main_window.c | 2 + src/bin/ui/popup.c | 36 +- src/bin/ui/property.c | 3 + src/bin/ui/property_group.c| 157 ++-- src/bin/ui/property_sound.c| 751 +-- src/bin/ui/property_style.c| 4 +- src/bin/ui/workspace/groupedit.c | 194 ++--- src/bin/ui/workspace/groupedit.h | 54 +- src/bin/ui/workspace/groupedit_calc.c | 594 ++- src/bin/ui/workspace/groupedit_private.h | 42 +- src/bin/ui/workspace/workspace.c | 48 +- src/bin/ui/workspace/workspace.h | 25 - src/lib/ewe_ruler.c| 2 +- tests/Makefile.am | 2 - tests/test_ui_workspace/test_ui_workspace.c| 4 - tests/test_ui_workspace/test_ui_workspace.h| 6 - .../workspace_edit_object_part_state_add.c | 147 .../workspace_edit_object_part_state_del.c | 158 38 files changed, 1476 insertions(+), 2384 deletions(-) --
[EGIT] [tools/eflete] master 61/62: groupedit: cleanup from unused members
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=92e01eadbca44e6fe86360ec300a25ae7756a6a1 commit 92e01eadbca44e6fe86360ec300a25ae7756a6a1 Author: Vyacheslav ReutskiyDate: Wed Dec 2 15:10:22 2015 +0200 groupedit: cleanup from unused members Change-Id: Ifd903499a35f45c0c84459d9227dec482a00a11b --- src/bin/ui/workspace/groupedit_calc.c| 19 --- src/bin/ui/workspace/groupedit_private.h | 20 2 files changed, 39 deletions(-) diff --git a/src/bin/ui/workspace/groupedit_calc.c b/src/bin/ui/workspace/groupedit_calc.c index 0374ed2..42e2ea5 100644 --- a/src/bin/ui/workspace/groupedit_calc.c +++ b/src/bin/ui/workspace/groupedit_calc.c @@ -35,9 +35,6 @@ static Groupedit_Part * _part_draw_add(Ws_Groupedit_Smart_Data *sd, Part_ *part); static void -_move_border_to_top(Ws_Groupedit_Smart_Data *sd); - -static void _part_draw_del(Ws_Groupedit_Smart_Data *sd, Part_ *part); static void @@ -72,7 +69,6 @@ _edit_object_part_add(Ws_Groupedit_Smart_Data *sd, gp = _part_draw_add(sd, part); sd->parts = eina_list_append(sd->parts, gp); - _move_border_to_top(sd); evas_object_smart_changed(sd->obj); return true; @@ -255,7 +251,6 @@ _parts_list_new(Ws_Groupedit_Smart_Data *sd) sd->parts = eina_list_append(sd->parts, gp); } evas_event_thaw(sd->e); - _move_border_to_top(sd); } void @@ -978,20 +973,6 @@ _item_draw_del(Groupedit_Item *item) free(item); } -static void -_move_border_to_top(Ws_Groupedit_Smart_Data *sd) -{ - assert(sd != NULL); - - evas_object_smart_member_del(sd->container); - evas_object_smart_member_del(sd->handler_TL.obj); - evas_object_smart_member_del(sd->handler_BR.obj); - - evas_object_smart_member_add(sd->container, sd->obj); - evas_object_smart_member_add(sd->handler_TL.obj, sd->obj); - evas_object_smart_member_add(sd->handler_BR.obj, sd->obj); -} - static inline void _color_apply(Groupedit_Part *gp, Evas_Object *edit_obj, const char *state, double value) { diff --git a/src/bin/ui/workspace/groupedit_private.h b/src/bin/ui/workspace/groupedit_private.h index 9cc3ebb..494c243 100644 --- a/src/bin/ui/workspace/groupedit_private.h +++ b/src/bin/ui/workspace/groupedit_private.h @@ -59,17 +59,9 @@ struct _Ws_Groupedit_Smart_Data Evas *e; Evas_Object *obj; Evas_Object *event; - Evas_Object *container; Evas_Object *parent; Evas_Object *box; Groupedit_Geom geom; - /* Paddings which solve scroller issue, - when container data move to 0,0 coords */ - struct { - int t_left; - int t_top; - int bottom; - } paddings; /* Minimal and maximum size of the container, i.e size of the edie_edit object */ struct { @@ -80,16 +72,6 @@ struct _Ws_Groupedit_Smart_Data int w; /* default: -1, size is not limited */ int h; /* default: -1, size is not limited */ } con_size_max; - struct { - Evas_Object *obj; - int w, h; - } handler_TL; - struct{ - Evas_Object *obj; - int w, h; - } handler_BR; - Eina_Bool handler_TL_pressed : 1; - Eina_Bool handler_BR_pressed : 1; Evas_Object *edit_obj_clipper; Eina_List *parts; Eina_Bool separated : 1; @@ -100,8 +82,6 @@ struct _Ws_Groupedit_Smart_Data Evas_Object *clipper; /**< The background clipper, need to draw item bg in the separete mode.*/ double zoom_factor; /**< current zoom factor. */ - Evas_Coord downx; - Evas_Coord downy; Eina_Bool manual_calc : 1; }; --
[EGIT] [tools/eflete] master 28/62: group_navigator: use editor api to add and to delete parts
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=a68223e53201568b48a63465399971dbaab8bdf0 commit a68223e53201568b48a63465399971dbaab8bdf0 Author: Andrii KroitorDate: Tue Dec 1 16:16:35 2015 +0200 group_navigator: use editor api to add and to delete parts --- src/bin/ui/group_navigator.c | 102 +-- 1 file changed, 80 insertions(+), 22 deletions(-) diff --git a/src/bin/ui/group_navigator.c b/src/bin/ui/group_navigator.c index 4b851e1..93e9554 100644 --- a/src/bin/ui/group_navigator.c +++ b/src/bin/ui/group_navigator.c @@ -512,18 +512,35 @@ _popup_add_part_ok_clicked(void *data, const Edje_Part_Type type = *((const Edje_Part_Type *)data); Part_List *pl = evas_object_data_get(obj, GROUP_NAVIGATOR_DATA); const char *name; - Part_ *part; - Elm_Object_Item *glit; + Eina_Stringshare *msg; + Change *change; assert(pl != NULL); name = elm_entry_entry_get(pl->popup.entry_name); + msg = eina_stringshare_printf(_("added new part \"%s\""), name); + change = change_add(msg); + editor_part_add(pl->group->edit_object, change, false, name, type); + + history_change_add(pl->group->history, change); + eina_stringshare_del(msg); + ecore_job_add(_job_popup_del, pl); +} + +static void +_editor_part_added_cb(void *data, + Evas_Object *obj __UNUSED__, + void *event_info) +{ + Part_List *pl = data; + Eina_Stringshare *part_name = event_info; + Part_ *part; + Elm_Object_Item *glit; - edje_edit_part_add(pl->group->edit_object, name, type); - /* if (type == EDJE_PART_IMAGE) */ - TODO("Add noimage here") + assert(pl != NULL); + assert(part_name != NULL); - part = gm_part_add(ap.project, pl->group, name); + part = gm_part_add(ap.project, pl->group, part_name); glit = elm_genlist_item_append(pl->genlist, pl->itc_part, @@ -537,8 +554,6 @@ _popup_add_part_ok_clicked(void *data, evas_object_smart_callback_call(ap.win, SIGNAL_PART_ADDED, (void *)part); elm_genlist_item_selected_set(glit, true); - - ecore_job_add(_job_popup_del, pl); } static void @@ -786,21 +801,71 @@ _part_del(Part_List *pl, { Part_ *part; Eina_Stringshare *part_name; + Eina_Stringshare *msg; + Change *change; assert(pl != NULL); assert(glit != NULL); part = elm_object_item_data_get(glit); - _unselect_part(pl); + + part_name = eina_stringshare_add(part->name); + msg = eina_stringshare_printf(_("deleted part \"%s\""), part_name); + change = change_add(msg); + editor_part_del(pl->group->edit_object, change, false, part_name); + history_change_add(pl->group->history, change); + eina_stringshare_del(msg); + eina_stringshare_del(part_name); +} + +static Elm_Object_Item * +_part_item_find(Part_List *pl, Part_ *part) +{ + Elm_Object_Item *part_item; + Part_ *pr; + + assert(pl != NULL); + assert(part != NULL); + + part_item = elm_genlist_first_item_get(pl->genlist); + pr = elm_object_item_data_get(part_item); + while (pr != part) + { +part_item = elm_genlist_item_next_get(part_item); +pr = elm_object_item_data_get(part_item); + +assert(pr != NULL); + } + assert(part_item != NULL); + return part_item; +} + +static void +_editor_part_deleted_cb(void *data, +Evas_Object *obj __UNUSED__, +void *event_info) +{ + Part_List *pl = data; + Eina_Stringshare *part_name = event_info; + Part_ *part; + Elm_Object_Item *part_item; + + assert(pl != NULL); + assert(part_name != NULL); + + part = pm_resource_unsorted_get(pl->group->parts, part_name); + + part_item = _part_item_find(pl, part); + if (pl->selected_part_item == part_item) + _unselect_part(pl); /* This callbck should be called before actual part deletion */ evas_object_smart_callback_call(ap.win, SIGNAL_PART_DELETED, (void *)part); - elm_object_item_del(glit); + elm_object_item_del(part_item); /* part is freed after deletion so we need to save its name */ part_name = eina_stringshare_ref(part->name); gm_part_del(ap.project, part); - edje_edit_part_del(pl->group->edit_object, part_name); eina_stringshare_del(part_name); } @@ -829,6 +894,7 @@ _state_del(Part_List *pl, part_name = eina_stringshare_ref(state->part->name); state_name = eina_stringshare_ref(state->parsed_name); state_val = state->parsed_val; + TODO("recheck string args logic"); editor_state_del(pl->group->edit_object, change, false, part_name, state_name, state_val); eina_stringshare_del(part_name); eina_stringshare_del(state_name); @@ -1036,6 +1102,8 @@ group_navigator_add(Group *group) pl->name_validator = elm_validator_regexp_new(PART_NAME_REGEX, NULL); + evas_object_smart_callback_add(ap.win, SIGNAL_EDITOR_PART_ADDED, _editor_part_added_cb, pl); +
[EGIT] [tools/eflete] master 34/62: configure: update dependencies version
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=81d631e7b6aafe63103ce6d195dfc7f5deef003c commit 81d631e7b6aafe63103ce6d195dfc7f5deef003c Author: Vyacheslav ReutskiyDate: Wed Dec 2 08:06:34 2015 +0200 configure: update dependencies version Change-Id: I17a9c17c6baf3925aa5f573b2e63f4fec4610b56 --- configure.ac | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index ab99730..2606dd4 100644 --- a/configure.ac +++ b/configure.ac @@ -13,10 +13,10 @@ AM_INIT_AUTOMAKE([1.13 dist-bzip2 subdir-objects color-tests foreign]) LT_INIT([win32-dll disable-static pic-only]) dnl m4_define([package], "EFL\ Edje\ Theme\ Editor") -m4_define([efl_version], [1.14.99]) -m4_define([elm_version], [1.14.99]) -m4_define([efl_version_max], [999]) -m4_define([elm_version_max], [999]) +m4_define([efl_version], [1.16]) +m4_define([elm_version], [1.16]) +m4_define([efl_version_max], [1.16.1]) +m4_define([elm_version_max], [1.16.1]) m4_define([enventor_version], [0.4.0]) --
[EGIT] [tools/eflete] master 31/62: groupedit: no longer need to calc geomentry with zomm factor
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=4e79f2d364771ba353c60024e29fce99e30a63f7 commit 4e79f2d364771ba353c60024e29fce99e30a63f7 Author: Vyacheslav ReutskiyDate: Tue Dec 1 16:23:14 2015 +0200 groupedit: no longer need to calc geomentry with zomm factor Change-Id: I727930f73911f9df1e4a8b76ff62fa83d78246ee --- src/bin/ui/workspace/groupedit_calc.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/bin/ui/workspace/groupedit_calc.c b/src/bin/ui/workspace/groupedit_calc.c index 5b03c15..7063533 100644 --- a/src/bin/ui/workspace/groupedit_calc.c +++ b/src/bin/ui/workspace/groupedit_calc.c @@ -1230,7 +1230,7 @@ _part_object_area_calc(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp) rel_part = _parts_list_find(sd->parts, rel_to); edje_object_part_geometry_get(sd->group->edit_object, rel_part->part->name, , NULL, , NULL); } - x = (xc + (int)(wc * relative * sd->zoom_factor)) + offset; + x = (xc + (int)(wc * relative)) + offset; edje_edit_string_free(rel_to); yc = yg; @@ -1243,7 +1243,7 @@ _part_object_area_calc(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp) rel_part = _parts_list_find(sd->parts, rel_to); edje_object_part_geometry_get(sd->group->edit_object, rel_part->part->name, NULL, , NULL, ); } - y = (yc + (int)(hc * relative * sd->zoom_factor)) + offset; + y = (yc + (int)(hc * relative)) + offset; edje_edit_string_free(rel_to); xc = xg; wc = sd->con_current_size->w; @@ -1255,7 +1255,7 @@ _part_object_area_calc(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp) rel_part = _parts_list_find(sd->parts, rel_to); edje_object_part_geometry_get(sd->group->edit_object, rel_part->part->name, , NULL, , NULL); } - w = ((xc - x) + (int)(wc * relative * sd->zoom_factor)) + offset; + w = ((xc - x) + (int)(wc * relative)) + offset; if (w < 0) { x += w; w = 0; } edje_edit_string_free(rel_to); @@ -1268,7 +1268,7 @@ _part_object_area_calc(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp) rel_part = _parts_list_find(sd->parts, rel_to); edje_object_part_geometry_get(sd->group->edit_object, rel_part->part->name, NULL, , NULL, ); } - h = ((yc - y) + (int)(hc * relative * sd->zoom_factor)) + offset; + h = ((yc - y) + (int)(hc * relative)) + offset; if (h < 0) { y += h; h = 0; } edje_edit_string_free(rel_to); --
[EGIT] [tools/eflete] master 23/62: popup: multiple image add implementation and use it in tweens
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=f4672f5e3793053c46a9a6d66fee8bd01877611a commit f4672f5e3793053c46a9a6d66fee8bd01877611a Author: Vitalii VorobiovDate: Fri Nov 27 20:12:43 2015 +0200 popup: multiple image add implementation and use it in tweens --- src/bin/ui/popup.c | 28 ++-- src/bin/ui/property_group.c | 30 +++--- 2 files changed, 33 insertions(+), 25 deletions(-) diff --git a/src/bin/ui/popup.c b/src/bin/ui/popup.c index b56536c..66b981e 100644 --- a/src/bin/ui/popup.c +++ b/src/bin/ui/popup.c @@ -22,6 +22,7 @@ static Popup_Button btn_pressed; static Evas_Object *popup; static Evas_Object *helper; +static Evas_Object *gengrid; static Evas_Object *fs; static Helper_Done_Cb dismiss_func; static void* func_data; @@ -383,19 +384,25 @@ popup_fileselector_image_helper(const char *title, Evas_Object *follow_up, const static void _done_image(void *data, -Evas_Object *obj, +Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { Eina_Bool res = true; Item *item = NULL; - const Eina_List* sel_list; + const Eina_List *sel_list, *l; + Eina_List *ret_list = NULL; + Elm_Object_Item *item_list; if (dismiss_func) { -TODO("Make multiselect for tweens and remake gengrid because of that?") -sel_list = elm_gengrid_selected_items_get(obj); -item = elm_object_item_data_get(eina_list_data_get(sel_list)); -res = ((Helper_Done_Cb)dismiss_func)(func_data, obj, (char *)item->image_name); +sel_list = elm_gengrid_selected_items_get(gengrid); +EINA_LIST_FOREACH(sel_list, l, item_list) + { + item = elm_object_item_data_get(item_list); + ret_list = eina_list_append(ret_list, eina_stringshare_add(item->image_name)); + } +res = ((Helper_Done_Cb)dismiss_func)(func_data, obj, ret_list); +eina_list_free(ret_list); } if (res) @@ -421,7 +428,7 @@ _grid_del(void *data, } Eina_Bool -_image_gengrid_init(Evas_Object *gengrid) +_image_gengrid_init() { Eina_List *l = NULL; Item *it = NULL; @@ -507,7 +514,7 @@ popup_gengrid_image_helper(const char *title, Evas_Object *follow_up, Helper_Done_Cb func, void *data, Eina_Bool multi) { - Evas_Object *gengrid, *entry, *icon, *button; + Evas_Object *entry, *icon, *button; dismiss_func = func; func_data = data; @@ -529,6 +536,7 @@ popup_gengrid_image_helper(const char *title, Evas_Object *follow_up, BUTTON_ADD(fs, button, _("Ok")) elm_object_part_content_set(helper, "elm.swallow.ok", button); +evas_object_smart_callback_add(button, "clicked", _done_image, follow_up); evas_object_show(button); } else @@ -536,13 +544,13 @@ popup_gengrid_image_helper(const char *title, Evas_Object *follow_up, elm_gengrid_multi_select_set(gengrid, false); elm_gengrid_multi_select_mode_set(gengrid, ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL); +evas_object_smart_callback_add(gengrid, "clicked,double", _done_image, follow_up); } elm_gengrid_item_size_set(gengrid, ITEM_WIDTH, ITEM_HEIGHT); elm_gengrid_align_set(gengrid, 0.0, 0.0); elm_scroller_policy_set(gengrid, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); elm_object_part_content_set(fs, "eflete.swallow.genlist", gengrid); - evas_object_smart_callback_add(gengrid, "clicked,double", _done_image, follow_up); if (!gic) { @@ -553,7 +561,7 @@ popup_gengrid_image_helper(const char *title, Evas_Object *follow_up, gic->func.del = _grid_del; } - _image_gengrid_init(gengrid); + _image_gengrid_init(); ENTRY_ADD(fs, entry, true); elm_object_part_text_set(entry, "guide", _("Search")); diff --git a/src/bin/ui/property_group.c b/src/bin/ui/property_group.c index c497dae..b606c7b 100644 --- a/src/bin/ui/property_group.c +++ b/src/bin/ui/property_group.c @@ -2850,14 +2850,17 @@ _on_image_editor_done(void *data, Evas_Object *obj __UNUSED__, void *event_info) { - Group_Prop_Data *pd = (Group_Prop_Data *)data; - const char *value; - const char *selected = (const char *)event_info; + Eina_List *list_selected = (Eina_List *)event_info; + const char *selected; - if (!selected) return false; + Group_Prop_Data *pd = (Group_Prop_Data *)data; + + if (!list_selected) return false; value = elm_entry_entry_get(pd->attributes.state_image.image); + selected = eina_list_data_get(list_selected); + if (strcmp(value, selected) == 0) return false; elm_entry_entry_set(pd->attributes.state_image.image, selected); @@ -2920,30 +2923,27 @@ _on_image_editor_tween_done(void *data,
[EGIT] [tools/eflete] master 04/62: Merge "layout.edc: add bg for part item, will be used as hilight for item"
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=963980d475294313f0eee6407793c8e85540ab97 commit 963980d475294313f0eee6407793c8e85540ab97 Merge: c6e6721 56384cd Author: Gerrit UserDate: Thu Nov 26 11:18:48 2015 +0200 Merge "layout.edc: add bg for part item, will be used as hilight for item" data/themes/default/widgets/layout.edc | 24 1 file changed, 24 insertions(+) --
[EGIT] [tools/eflete] master 27/62: editor: do not emit signals on reset
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=6e0672be5ec874e3fca2269ec7baf9d0fff00fee commit 6e0672be5ec874e3fca2269ec7baf9d0fff00fee Author: Andrii KroitorDate: Tue Dec 1 16:15:18 2015 +0200 editor: do not emit signals on reset --- src/bin/editor/editor_part.c | 4 src/bin/editor/editor_states.c | 4 2 files changed, 8 insertions(+) diff --git a/src/bin/editor/editor_part.c b/src/bin/editor/editor_part.c index ac30d5e..62b6393 100644 --- a/src/bin/editor/editor_part.c +++ b/src/bin/editor/editor_part.c @@ -537,6 +537,8 @@ editor_part_reset(Evas_Object *edit_object, Change *change, Eina_Bool merge __UN assert(edit_object != NULL); assert(part_name != NULL); + you_shall_not_pass_editor_signals(change); + Edje_Part_Type type = edje_edit_part_type_get(edit_object, part_name); if ((type == EDJE_PART_TYPE_TEXTBLOCK) || (type == EDJE_PART_TYPE_TEXT)) @@ -591,6 +593,8 @@ editor_part_reset(Evas_Object *edit_object, Change *change, Eina_Bool merge __UN res = res && editor_part_item_del(edit_object, change, false, part_name, name); edje_edit_string_list_free(items); + you_shall_pass_editor_signals(change); + return res; } diff --git a/src/bin/editor/editor_states.c b/src/bin/editor/editor_states.c index 3b5ddf3..1881d68 100644 --- a/src/bin/editor/editor_states.c +++ b/src/bin/editor/editor_states.c @@ -196,6 +196,8 @@ editor_state_reset(Evas_Object *edit_object, Change *change, Eina_Bool merge __U assert(part_name != NULL); assert(state_name != NULL); + you_shall_not_pass_editor_signals(change); + Edje_Part_Type type = edje_edit_part_type_get(edit_object, part_name); switch (type) @@ -291,6 +293,8 @@ editor_state_reset(Evas_Object *edit_object, Change *change, Eina_Bool merge __U res = res && editor_state_rel2_to_y_reset(edit_object, change, part_name, state_name, state_val); res = res && editor_state_visible_reset(edit_object, change, part_name, state_name, state_val); + you_shall_pass_editor_signals(change); + return res; } --
[EGIT] [tools/eflete] master 01/62: layout.edc: add bg for part item, will be used as hilight for item
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=56384cd290d0b1477204bdeb4794d3f9613a56c1 commit 56384cd290d0b1477204bdeb4794d3f9613a56c1 Author: Vyacheslav ReutskiyDate: Wed Nov 25 16:20:34 2015 +0200 layout.edc: add bg for part item, will be used as hilight for item Change-Id: I949f7bb9c321851418c17b443e62b5394584 --- data/themes/default/widgets/layout.edc | 24 1 file changed, 24 insertions(+) diff --git a/data/themes/default/widgets/layout.edc b/data/themes/default/widgets/layout.edc index a906411..359685b 100644 --- a/data/themes/default/widgets/layout.edc +++ b/data/themes/default/widgets/layout.edc @@ -3447,6 +3447,7 @@ group { name: "elm/layout/groupview/default"; image: "bg_group.png" COMP; image: "bg_table.png" COMP; image: "bg_box.png" COMP; + image: "bg_part_item.png" COMP; } part { name: "bg"; type: IMAGE; @@ -3471,6 +3472,15 @@ group { name: "elm/layout/groupview/default"; BG(table, bg_table.png) BG(box,bg_box.png) #undef BG + description { state: "part_item_hilight" 0.0; +inherit: "default" 0.0; +image.normal: "bg_part_item.png"; + } + description { state: "part_item_hilight" 1.0; +inherit: "default" 0.0; +visible: 1; +image.normal: "bg_part_item.png"; + } } part { name: "elm.swallow.content"; type: SWALLOW; @@ -3523,4 +3533,18 @@ group { name: "elm/layout/groupview/default"; PROGRAM(part_item) #undef PROGRAM } + program { name: "part_item_hilight_off"; + source: "eflete"; + filter: "border" "part_item" 0.0; + signal: "border,part_item,hilight,off"; + action: STATE_SET part_item_hilight 0.0; + target: "bg"; + } + program { name: "part_item_hilight_on"; + source: "eflete"; + filter: "border" "part_item" 0.0; + signal: "border,part_item,hilight,on"; + action: STATE_SET part_item_hilight 1.0; + target: "bg"; + } } --
[EGIT] [tools/eflete] master 14/62: Merge "popup: logic mistake in image_helper multiselection"
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=82d357005d0915c9e9867b421cc713352bf0fe1c commit 82d357005d0915c9e9867b421cc713352bf0fe1c Merge: 25aa019 b160a00 Author: Gerrit UserDate: Tue Dec 1 08:08:36 2015 +0200 Merge "popup: logic mistake in image_helper multiselection" src/bin/ui/popup.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --
[EGIT] [tools/eflete] master 29/62: groupedit: pack all parts view to box
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=456f344b229503a23bd594b691c4b3d901a82462 commit 456f344b229503a23bd594b691c4b3d901a82462 Author: Vyacheslav ReutskiyDate: Tue Dec 1 15:56:28 2015 +0200 groupedit: pack all parts view to box Now all parts packed to box with custom layout. This layout puts in place parts. It's broke the zoom and separate mode, but new zoom implementation will be very simple. TODO: * implement new zoom; * implement custom layout for separate mode. Change-Id: Ia9575d8eba43df9b44389db07f77347533587955 --- src/bin/ui/workspace/groupedit.c | 11 + src/bin/ui/workspace/groupedit_calc.c| 368 +-- src/bin/ui/workspace/groupedit_private.h | 8 + 3 files changed, 171 insertions(+), 216 deletions(-) diff --git a/src/bin/ui/workspace/groupedit.c b/src/bin/ui/workspace/groupedit.c index cd5a7ed..0da59c2 100644 --- a/src/bin/ui/workspace/groupedit.c +++ b/src/bin/ui/workspace/groupedit.c @@ -230,6 +230,13 @@ _groupedit_smart_calculate(Evas_Object *o) evas_object_resize(priv->group->edit_object, priv->con_current_size->w, priv->con_current_size->h); + evas_object_move(priv->box, + priv->con_current_size->x, + priv->con_current_size->y); + + evas_object_resize(priv->box, + priv->con_current_size->w, + priv->con_current_size->h); priv->manual_calc = false; _parts_recalc(priv); @@ -276,6 +283,10 @@ groupedit_add(Evas_Object *parent, Group *group) sd->group = group; evas_object_smart_member_add(sd->group->edit_object, obj); + sd->box = elm_box_add(parent); + elm_box_layout_set(sd->box, _parts_stack_layout, sd, NULL); + evas_object_show(sd->box); + evas_object_smart_member_add(sd->box, obj); _parts_list_new(sd); /* hide the editing object by using clipper (clipper is small, it's size is 0,0) diff --git a/src/bin/ui/workspace/groupedit_calc.c b/src/bin/ui/workspace/groupedit_calc.c index 1c13917..b7a6600 100644 --- a/src/bin/ui/workspace/groupedit_calc.c +++ b/src/bin/ui/workspace/groupedit_calc.c @@ -44,7 +44,7 @@ static void _item_draw_del(Groupedit_Item *ge_item); static void -_part_object_area_calc(Ws_Groupedit_Smart_Data *sd); +_part_object_area_calc(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp); static void _common_param_update(Groupedit_Part *gp, Evas_Object *edit_obj); @@ -393,6 +393,7 @@ _select_item_move_to_top(Ws_Groupedit_Smart_Data *sd) sd->to_select = NULL; } +#if 0 static void _part_separete_mod_mouse_click_cb(void *data, Evas *e __UNUSED__, @@ -450,6 +451,7 @@ _part_separete_mod_mouse_out_cb(void *data, if (sd->selected == gp) return; edje_object_signal_emit(gp->item, "item,mouse,out", "eflete"); } +#endif /* */ static void _part_select(void *data, @@ -800,14 +802,13 @@ _part_container_del(Groupedit_Part *gp) evas_object_repeat_events_set(OBJECT, false); \ } +#undef GP_REAL_GEOMETRY_CALC +#undef ZOOM_APPLY + static void -_part_recalc_apply(Ws_Groupedit_Smart_Data *sd, - Groupedit_Part *gp, - int offset_x, - int offset_y) +_part_calc(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp) { Evas_Coord x, y, xe, ye, w, h; - Evas_Coord part_x, part_y, abs_x, abs_y; assert(sd != NULL); assert(gp != NULL); @@ -815,18 +816,13 @@ _part_recalc_apply(Ws_Groupedit_Smart_Data *sd, edje_object_part_geometry_get(sd->group->edit_object, gp->part->name, , , , ); evas_object_geometry_get(sd->group->edit_object, , , NULL, NULL); - evas_object_resize(gp->draw, w, h); - evas_object_move(gp->draw, (x * sd->zoom_factor + xe + offset_x), - (y * sd->zoom_factor + ye + offset_y)); - - if (gp->container) - { -evas_object_resize(gp->container, w, h); -evas_object_move(gp->container, (x * sd->zoom_factor + xe + offset_x), - (y * sd->zoom_factor + ye + offset_y)); - } + gp->geom.x = x + xe; + gp->geom.y = y + ye; + gp->geom.w = w; + gp->geom.h = h; - if (gp->part->type == EDJE_PART_TYPE_TEXT) + if ((gp->part->type == EDJE_PART_TYPE_TEXT) || + (gp->part->type == EDJE_PART_TYPE_TEXTBLOCK)) { double x_align, y_align; const Evas_Object *ro; @@ -835,7 +831,6 @@ _part_recalc_apply(Ws_Groupedit_Smart_Data *sd, evas_object_geometry_get(ro, NULL, NULL, _w, _h); evas_object_resize(gp->proxy_part, ro_w, ro_h); - x_align = edje_edit_state_text_align_x_get(sd->group->edit_object, gp->part->name, gp->part->current_state->parsed_name, @@ -846,142 +841,76 @@
[EGIT] [tools/eflete] master 30/62: groupedit: delete unnecessary member 'real_size' and used macro
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=197cc0189482eaa3400dbce8dcef7ee7a060d074 commit 197cc0189482eaa3400dbce8dcef7ee7a060d074 Author: Vyacheslav ReutskiyDate: Tue Dec 1 16:19:57 2015 +0200 groupedit: delete unnecessary member 'real_size' and used macro Change-Id: I1dc7e83921bb65a040d46722b1243eb303b9a67a --- src/bin/ui/workspace/groupedit.c | 2 -- src/bin/ui/workspace/groupedit_calc.c| 55 src/bin/ui/workspace/groupedit_private.h | 1 - 3 files changed, 58 deletions(-) diff --git a/src/bin/ui/workspace/groupedit.c b/src/bin/ui/workspace/groupedit.c index 0da59c2..8932d4c 100644 --- a/src/bin/ui/workspace/groupedit.c +++ b/src/bin/ui/workspace/groupedit.c @@ -93,7 +93,6 @@ _groupedit_smart_add(Evas_Object *o) priv->obj = o; priv->con_current_size = (Groupedit_Geom *)mem_calloc(1, sizeof(Groupedit_Geom)); - priv->real_size = (Groupedit_Geom *)mem_calloc(1, sizeof(Groupedit_Geom)); priv->zoom_factor = 1.0; priv->parts = NULL; priv->obj_area.obj = edje_object_add(priv->e); @@ -124,7 +123,6 @@ _groupedit_smart_del(Evas_Object *o) evas_object_hide(sd->group->edit_object); evas_object_del(sd->edit_obj_clipper); - free(sd->real_size); free(sd->con_current_size); free(sd->obj_area.geom); diff --git a/src/bin/ui/workspace/groupedit_calc.c b/src/bin/ui/workspace/groupedit_calc.c index b7a6600..5b03c15 100644 --- a/src/bin/ui/workspace/groupedit_calc.c +++ b/src/bin/ui/workspace/groupedit_calc.c @@ -601,8 +601,6 @@ _part_table_add(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp) for (i = 0; i < col; i++) free(items_draw[i]); free(items_draw); - - } /* get from edje_util.c:2935 */ @@ -758,53 +756,6 @@ _part_container_del(Groupedit_Part *gp) gp->container = NULL; } -#define GP_REAL_GEOMETRY_CALC(PART_X, PART_Y, ABS_X, ABS_Y) \ - w *= sd->zoom_factor; h *= sd->zoom_factor; \ - PART_X = x * sd->zoom_factor + xe + offset_x; \ - PART_Y = y * sd->zoom_factor + ye + offset_y; \ - ABS_X = abs(sd->real_size->x - PART_X); \ - ABS_Y = abs(sd->real_size->y - PART_Y); \ - if (PART_X > sd->real_size->x) \ - w += ABS_X; \ - else \ - { \ -sd->real_size->w += ABS_X; \ -sd->real_size->x = PART_X; \ - } \ - if (PART_Y > sd->real_size->y) \ - h += ABS_Y; \ - else \ - { \ -sd->real_size->h += ABS_Y; \ -sd->real_size->y = PART_Y; \ - } \ - if (sd->real_size->w < w) \ - sd->real_size->w = w; \ - if (sd->real_size->h < h) \ - sd->real_size->h = h; - -#define ZOOM_APPLY(OBJECT) \ - if (fabs(sd->zoom_factor - 1.0) > 0.1) \ - { \ -evas_object_geometry_get(OBJECT, , , NULL, NULL); \ -Evas_Map *m = evas_map_new(4); \ -evas_map_smooth_set(m, false); \ -evas_map_util_points_populate_from_object_full(m, OBJECT, 0); \ -evas_map_util_zoom(m, sd->zoom_factor, sd->zoom_factor, x, y); \ -evas_object_map_set(OBJECT, m); \ -evas_object_map_enable_set(OBJECT, true); \ -evas_map_free(m); \ -evas_object_repeat_events_set(OBJECT, true); \ - } \ - else \ - { \ -evas_object_map_enable_set(OBJECT, false); \ -evas_object_repeat_events_set(OBJECT, false); \ - } - -#undef GP_REAL_GEOMETRY_CALC -#undef ZOOM_APPLY - static void _part_calc(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp) { @@ -858,12 +809,6 @@ _part_update(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp) if (!sd->parts) return false; - evas_object_geometry_get(sd->obj, >real_size->x, ->real_size->y, ->real_size->w, ->real_size->h); - - switch (gp->part->type) { case EDJE_PART_TYPE_TEXT: diff --git a/src/bin/ui/workspace/groupedit_private.h b/src/bin/ui/workspace/groupedit_private.h index 27d3fa3..2e3bb04 100644 --- a/src/bin/ui/workspace/groupedit_private.h +++ b/src/bin/ui/workspace/groupedit_private.h @@ -80,7 +80,6 @@ struct _Ws_Groupedit_Smart_Data int h; /* default: -1, size is not limited */ } con_size_max; Groupedit_Geom *con_current_size; - Groupedit_Geom *real_size; struct { Evas_Object *obj; int w, h; --
[EGIT] [tools/eflete] master 18/62: groupedit: delete forgoten debug messages
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=d1b072f759f4f77e7000890664fe9fdcb3f7ab6d commit d1b072f759f4f77e7000890664fe9fdcb3f7ab6d Author: Vyacheslav ReutskiyDate: Thu Nov 26 15:23:56 2015 +0200 groupedit: delete forgoten debug messages Change-Id: Ia27e52af958810946c9a7c1fed53c3cb14cbcf28 --- src/bin/ui/workspace/groupedit_calc.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/bin/ui/workspace/groupedit_calc.c b/src/bin/ui/workspace/groupedit_calc.c index 638e057..f4df182 100644 --- a/src/bin/ui/workspace/groupedit_calc.c +++ b/src/bin/ui/workspace/groupedit_calc.c @@ -568,7 +568,6 @@ _part_table_add(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp) table = edje_object_part_object_get(sd->group->edit_object, gp->part->name); evas_object_table_col_row_size_get(table, , ); - fprintf(stdout, "%5d %5d\n", col, row); items_draw = (Eina_Stringshare ***)mem_calloc(1, sizeof(Eina_Stringshare **) * col); for (i = 0; i < col; i++) items_draw[i] = (Eina_Stringshare **)mem_calloc(1, sizeof(Eina_Stringshare *) * row); @@ -666,7 +665,6 @@ _part_box_add(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp) assert(gp->container == NULL); - fprintf(stdout, "%s\n", gp->part->name); gp->container = evas_object_box_add(sd->e); elm_box_pack_before(gp->draw, gp->container, gp->proxy_part); evas_object_show(gp->container); @@ -1238,7 +1236,6 @@ _image_param_update(Groupedit_Part *gp, Evas_Object *edit_obj) id = edje_edit_image_id_get(edit_obj, image_normal); edje_edit_string_free(image_normal); buf = eina_stringshare_printf("edje/images/%i", id); - //fprintf(stdout, "%s\n", buf); evas_object_image_file_set(gp->proxy_part, ap.project->dev, buf); err = evas_object_image_load_error_get(gp->proxy_part); if (err != EVAS_LOAD_ERROR_NONE) --
[EGIT] [tools/eflete] master 51/62: group_navigator: add stubs for part_item add/del
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=8891681a8ce1196a104ea74ff64790895b430d2c commit 8891681a8ce1196a104ea74ff64790895b430d2c Author: Andrii KroitorDate: Wed Dec 2 12:24:58 2015 +0200 group_navigator: add stubs for part_item add/del --- src/bin/ui/group_navigator.c | 30 ++ 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/src/bin/ui/group_navigator.c b/src/bin/ui/group_navigator.c index 93e9554..d58df96 100644 --- a/src/bin/ui/group_navigator.c +++ b/src/bin/ui/group_navigator.c @@ -51,6 +51,7 @@ typedef struct Evas_Object *menu; Elm_Object_Item *add_state_menu_item; + Elm_Object_Item *add_part_item_menu_item; Elm_Validator_Regexp *name_validator; struct { Evas_Object *entry_name; @@ -391,6 +392,7 @@ _unselect_part(Part_List *pl) elm_genlist_item_item_class_update(pl->selected_part_item, pl->itc_part); pl->selected_part_item = NULL; elm_object_item_disabled_set(pl->add_state_menu_item, true); + elm_object_item_disabled_set(pl->add_part_item_menu_item, true); elm_object_disabled_set(pl->btn_del, true); evas_object_smart_callback_call(ap.win, SIGNAL_PART_UNSELECTED, (void *)part); } @@ -433,6 +435,9 @@ _selected_cb(void *data, elm_genlist_item_item_class_update(glit_part, pl->itc_part_selected); } elm_object_item_disabled_set(pl->add_state_menu_item, false); + if ((part->type == EDJE_PART_TYPE_BOX) || + (part->type == EDJE_PART_TYPE_TABLE)) + elm_object_item_disabled_set(pl->add_part_item_menu_item, false); if ((itc == pl->itc_item_caption) || (((itc == pl->itc_state) || (itc == pl->itc_state_selected)) && (!strcmp(((State *)elm_object_item_data_get(glit))->name, "default 0.00" @@ -780,6 +785,14 @@ _on_menu_add_state_clicked(void *data __UNUSED__, } static void +_on_menu_add_item_clicked(void *data __UNUSED__, + Evas_Object *obj __UNUSED__, + void *ei __UNUSED__) +{ + printf("_on_menu_add_item_clicked\n"); +} + +static void _on_btn_plus_clicked(void *data, Evas_Object *obj, void *ei __UNUSED__) @@ -952,6 +965,13 @@ _editor_state_deleted_cb(void *data, } static void +_item_del(Part_List *pl __UNUSED__, + Elm_Object_Item *glit __UNUSED__) +{ + printf("_item_del\n"); +} + +static void _on_btn_minus_clicked(void *data, Evas_Object *obj __UNUSED__, void *ei __UNUSED__) @@ -968,11 +988,11 @@ _on_btn_minus_clicked(void *data, itc = elm_genlist_item_item_class_get(glit); if (itc == pl->itc_part_selected) - { -_part_del(pl, glit); - } + _part_del(pl, glit); else if ((itc == pl->itc_state_selected) || (itc == pl->itc_state)) - _state_del(pl, glit); + _state_del(pl, glit); + else if ((itc == pl->itc_item)) + _item_del(pl, glit); TODO("Check if we still need this") /* Need to save pl->group->edit_object, since we changed it */ @@ -1077,6 +1097,8 @@ group_navigator_add(Group *group) pl->add_state_menu_item = elm_menu_item_add(pl->menu, NULL, NULL, _("State"), _on_menu_add_state_clicked, NULL); elm_object_item_disabled_set(pl->add_state_menu_item, true); + pl->add_part_item_menu_item = elm_menu_item_add(pl->menu, NULL, NULL, _("Item"), _on_menu_add_item_clicked, NULL); + elm_object_item_disabled_set(pl->add_part_item_menu_item, true); menu_item = elm_menu_item_separator_add(pl->menu, NULL); menu_item = elm_menu_item_add(pl->menu, NULL, NULL, _("Rectangle"), _on_menu_add_part_clicked, &_type_rect); --
[EGIT] [tools/eflete] master 26/62: editor: implement signal blockers
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=dbf1509a6337e386c3409a75b80620214406d17c commit dbf1509a6337e386c3409a75b80620214406d17c Author: Andrii KroitorDate: Tue Dec 1 16:14:10 2015 +0200 editor: implement signal blockers --- src/bin/editor/editor_general.c | 2 +- src/bin/editor/editor_group.c | 7 --- src/bin/editor/editor_macro.h | 26 +- src/bin/editor/editor_part.c| 33 ++--- src/bin/editor/editor_states.c | 11 ++- src/bin/editor/editor_text.c| 3 ++- 6 files changed, 44 insertions(+), 38 deletions(-) diff --git a/src/bin/editor/editor_general.c b/src/bin/editor/editor_general.c index a479dda..70d748e 100644 --- a/src/bin/editor/editor_general.c +++ b/src/bin/editor/editor_general.c @@ -28,7 +28,7 @@ _editor_save(Evas_Object *edit_object, Eina_Bool current_group) if (!edje_edit_without_source_save(edit_object, current_group)) return false; - evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_SAVED, NULL); + if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_SAVED, NULL); return true; } Eina_Bool diff --git a/src/bin/editor/editor_group.c b/src/bin/editor/editor_group.c index b18957c..1629adf 100644 --- a/src/bin/editor/editor_group.c +++ b/src/bin/editor/editor_group.c @@ -19,6 +19,7 @@ #include "editor.h" +extern int _editor_signals_blocked; Eina_Bool editor_group_add(Evas_Object *obj, const char *name) { @@ -113,7 +114,7 @@ editor_group_max_## VAL ##_set(Evas_Object *obj, Change *change, Eina_Bool merge if (!edje_edit_group_max_## VAL ##_set(obj, new_value)) \ return false; \ _editor_project_changed(); \ - evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, ); \ + if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, ); \ return true; \ } @@ -156,7 +157,7 @@ editor_group_min_## VAL ##_set(Evas_Object *obj, Change *change, Eina_Bool merge if (!edje_edit_group_min_## VAL ##_set(obj, new_value)) \ return false; \ _editor_project_changed(); \ - evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, ); \ + if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, ); \ return true; \ } @@ -190,6 +191,6 @@ editor_group_name_set(Evas_Object *edit_object, Change *change, Eina_Bool merge, if (!edje_edit_group_name_set(edit_object, new_val)) return false; _editor_project_changed(); - evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, ); + if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, ); return true; } diff --git a/src/bin/editor/editor_macro.h b/src/bin/editor/editor_macro.h index c5b351f..805a963 100644 --- a/src/bin/editor/editor_macro.h +++ b/src/bin/editor/editor_macro.h @@ -51,7 +51,7 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, Change *change, Eina_Bool if (!edje_edit_state_## FUNC ##_set(edit_object, part_name, state_name, state_val, new_val)) \ return false; \ _editor_project_changed(); \ - evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, ); \ + if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, ); \ return true; \ } @@ -89,7 +89,7 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, Change *change, Eina_Bool if (!edje_edit_state_## FUNC ##_set(edit_object, part_name, state_name, state_val, new_val)) \ return false; \ _editor_project_changed(); \ - evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, ); \ + if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, ); \ return true; \ } @@ -127,7 +127,7 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, Change *change, Eina_Bool if (!edje_edit_state_## FUNC ##_set(edit_object, part_name, state_name, state_val, new_val)) \ return false; \ _editor_project_changed(); \ - evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, ); \ + if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, ); \ return true; \ } @@ -179,7 +179,7 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, Change *change, Eina_Bool change_diff_add(change, diff); \ } \ _editor_project_changed(); \ - evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, ); \ + if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, ); \ return true; \ } @@ -224,7 +224,7 @@ editor_state_## FUNC ##_set(Evas_Object *edit_object, Change *change, Eina_Bool if
[EGIT] [tools/eflete] master 25/62: editor: add methods that [un]blocks signals
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=5525e34c2af0db9d80b97787aaf2b3dbe3d23a13 commit 5525e34c2af0db9d80b97787aaf2b3dbe3d23a13 Author: Andrii KroitorDate: Tue Dec 1 15:56:10 2015 +0200 editor: add methods that [un]blocks signals --- src/bin/editor/editor.h | 6 ++ src/bin/editor/editor_general.c | 39 +++ 2 files changed, 45 insertions(+) diff --git a/src/bin/editor/editor.h b/src/bin/editor/editor.h index c088402..91cb5d0 100644 --- a/src/bin/editor/editor.h +++ b/src/bin/editor/editor.h @@ -177,6 +177,12 @@ editor_group_alias_add(Evas_Object *obj, const char *group_src, const char *grou Eina_Bool editor_group_del(Evas_Object *obj, const char *name); +Eina_Bool +you_shall_not_pass_editor_signals(Change *change); + +Eina_Bool +you_shall_pass_editor_signals(Change *change); + /* Group */ Eina_Bool editor_group_min_w_set(Evas_Object *obj, Change *change, Eina_Bool merge, diff --git a/src/bin/editor/editor_general.c b/src/bin/editor/editor_general.c index 12b2f19..a479dda 100644 --- a/src/bin/editor/editor_general.c +++ b/src/bin/editor/editor_general.c @@ -19,6 +19,7 @@ #include "editor.h" +int _editor_signals_blocked = 0; static inline Eina_Bool _editor_save(Evas_Object *edit_object, Eina_Bool current_group) { @@ -56,3 +57,41 @@ editor_internal_group_add(Evas_Object *edit_object) return false; return true; } + +Eina_Bool +you_shall_not_pass_editor_signals(Change *change) +{ + Diff *diff; + + if (change) + { +diff = mem_calloc(1, sizeof(Diff)); +diff->redo.type = FUNCTION_TYPE_SIGNALSBLOCK; +diff->redo.function = you_shall_not_pass_editor_signals; +diff->undo.type = FUNCTION_TYPE_NONE; + +change_diff_add(change, diff); + } + _editor_signals_blocked++; + return true; +} + +Eina_Bool +you_shall_pass_editor_signals(Change *change) +{ + Diff *diff; + + assert(_editor_signals_blocked > 0); + + if (change) + { +diff = mem_calloc(1, sizeof(Diff)); +diff->redo.type = FUNCTION_TYPE_SIGNALSBLOCK; +diff->redo.function = you_shall_pass_editor_signals; +diff->undo.type = FUNCTION_TYPE_NONE; + +change_diff_add(change, diff); + } + _editor_signals_blocked--; + return true; +} --
[EGIT] [tools/eflete] master 55/62: Merge "groupedit: delete unused char buffer"
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=b9a29812aa7b2ee6793b34637fe9235d386921de commit b9a29812aa7b2ee6793b34637fe9235d386921de Merge: 9e0f98d e56ffec Author: Gerrit UserDate: Wed Dec 2 15:55:48 2015 +0200 Merge "groupedit: delete unused char buffer" src/bin/ui/workspace/groupedit.c | 2 -- 1 file changed, 2 deletions(-) --
[EGIT] [tools/eflete] master 41/62: Workspace: delete highlight object with workspace delete.
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=2823b9611f5bee7228d4fac02cb2ec35e31e5798 commit 2823b9611f5bee7228d4fac02cb2ec35e31e5798 Author: Mykyta BiliavskyiDate: Mon Nov 23 15:55:46 2015 + Workspace: delete highlight object with workspace delete. --- src/bin/ui/workspace/workspace.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/ui/workspace/workspace.c b/src/bin/ui/workspace/workspace.c index 5535cc0..96f783d 100644 --- a/src/bin/ui/workspace/workspace.c +++ b/src/bin/ui/workspace/workspace.c @@ -1264,6 +1264,8 @@ _workspace_smart_del(Evas_Object *o) { WS_DATA_GET(o, sd); + evas_object_del(sd->highlight.space_hl); + evas_object_del(sd->highlight.highlight); _workspace_parent_sc->del(o); } --
[EGIT] [tools/eflete] master 57/62: groupedit: delete obj_area sturct because it moved to Groupedit_Part
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=40c7b43969b0e81ebe7d898126f718257ed039b3 commit 40c7b43969b0e81ebe7d898126f718257ed039b3 Author: Vyacheslav ReutskiyDate: Wed Dec 2 12:20:12 2015 +0200 groupedit: delete obj_area sturct because it moved to Groupedit_Part Change-Id: I67d750a1f357de255db887493d0077551aa461ac --- src/bin/ui/workspace/groupedit.c | 44 +++- src/bin/ui/workspace/groupedit_private.h | 6 - 2 files changed, 3 insertions(+), 47 deletions(-) diff --git a/src/bin/ui/workspace/groupedit.c b/src/bin/ui/workspace/groupedit.c index 488b2bc..1e44899 100644 --- a/src/bin/ui/workspace/groupedit.c +++ b/src/bin/ui/workspace/groupedit.c @@ -29,30 +29,6 @@ EVAS_SMART_SUBCLASS_NEW(MY_CLASS_NAME, _groupedit, evas_object_smart_clipped_class_get, _smart_callbacks); static void -_style_set(Evas_Object *o, const char *style) -{ - char group[BUFF_MAX]; - WS_GROUPEDIT_DATA_GET(o, sd) - assert(style != NULL); - - #define GROUP_NAME(item, style) \ - snprintf(group, BUFF_MAX, "eflete/groupedit/%s/%s", item, style); - - GROUP_NAME("object_area", style) - if (!edje_object_file_set(sd->obj_area.obj, EFLETE_EDJ, group)) - { -GROUP_NAME("object_area", "default") -if (!edje_object_file_set(sd->obj_area.obj, EFLETE_EDJ, group)) - { - ERR("Could not set up default theme for object area!"); - abort(); - } - } - - #undef GROUP_NAME -} - -static void _unselect_part(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, @@ -69,7 +45,6 @@ _unselect_part(void *data, if (!sd->selected) return; _selected_item_return_to_place(sd); } - evas_object_hide(sd->obj_area.obj); evas_object_smart_callback_call(o, SIGNAL_GROUPEDIT_PART_UNSELECTED, (void *)sd->selected->part); sd->selected = NULL; @@ -95,19 +70,11 @@ _groupedit_smart_add(Evas_Object *o) priv->geom = (Groupedit_Geom *)mem_calloc(1, sizeof(Groupedit_Geom)); priv->zoom_factor = 1.0; priv->parts = NULL; - priv->obj_area.obj = edje_object_add(priv->e); - evas_object_repeat_events_set(priv->obj_area.obj, true); - priv->obj_area.visible = false; - priv->obj_area.show_now = false; - priv->obj_area.geom = (Groupedit_Geom *)mem_calloc(1, sizeof(Groupedit_Geom)); priv->separated = false; priv->selected = NULL; priv->to_select = NULL; - evas_object_smart_member_add(priv->obj_area.obj, o); evas_object_smart_member_add(priv->event, o); - - _style_set(o, "default"); } static void @@ -124,7 +91,6 @@ _groupedit_smart_del(Evas_Object *o) evas_object_del(sd->edit_obj_clipper); free(sd->geom); - free(sd->obj_area.geom); _groupedit_parent_sc->del(o); } @@ -468,26 +434,22 @@ groupedit_part_object_area_get(Evas_Object *obj) { WS_GROUPEDIT_DATA_GET(obj, sd) - return sd->obj_area.obj; + return sd->obj; } void -groupedit_part_object_area_visible_set(Evas_Object *obj, Eina_Bool visible) +groupedit_part_object_area_visible_set(Evas_Object *obj, Eina_Bool visible __UNUSED__) { WS_GROUPEDIT_DATA_GET(obj, sd); - sd->obj_area.visible = visible; if (!sd->selected) return; - - if (visible) evas_object_show(sd->obj_area.obj); - else evas_object_hide(sd->obj_area.obj); } Eina_Bool groupedit_part_object_area_visible_get(Evas_Object *obj) { WS_GROUPEDIT_DATA_GET(obj, sd); - return sd->obj_area.visible; + return false; } Eina_Bool diff --git a/src/bin/ui/workspace/groupedit_private.h b/src/bin/ui/workspace/groupedit_private.h index 5595105..6412d07 100644 --- a/src/bin/ui/workspace/groupedit_private.h +++ b/src/bin/ui/workspace/groupedit_private.h @@ -92,12 +92,6 @@ struct _Ws_Groupedit_Smart_Data Eina_Bool handler_BR_pressed : 1; Evas_Object *edit_obj_clipper; Eina_List *parts; - struct { - Evas_Object *obj; - Groupedit_Geom *geom; - Eina_Bool visible : 1; - Eina_Bool show_now : 1; - } obj_area; Eina_Bool separated : 1; Groupedit_Part *selected; Groupedit_Part *to_select; --
[EGIT] [tools/eflete] master 48/62: goupedit_calc: fix segfault on incorrect box layout
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=0ba8fdb27c88ab5c964fb8ac2bb010af6e6f9dd4 commit 0ba8fdb27c88ab5c964fb8ac2bb010af6e6f9dd4 Author: Andrii KroitorDate: Wed Dec 2 11:47:00 2015 +0200 goupedit_calc: fix segfault on incorrect box layout --- src/bin/ui/workspace/groupedit_calc.c | 38 +++ 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/src/bin/ui/workspace/groupedit_calc.c b/src/bin/ui/workspace/groupedit_calc.c index e7417bc..9943ca8 100644 --- a/src/bin/ui/workspace/groupedit_calc.c +++ b/src/bin/ui/workspace/groupedit_calc.c @@ -627,28 +627,32 @@ _edje_box_layout_builtin_find(const char *name) }; const struct edje_box_layout_builtin *base; - switch (name[0]) + if (name) { - case 'h': -base = _edje_box_layout_builtin + 0; -break; - - case 's': -base = _edje_box_layout_builtin + 4; -break; +switch (name[0]) + { + case 'h': + base = _edje_box_layout_builtin + 0; + break; - case 'v': -base = _edje_box_layout_builtin + 5; -break; + case 's': + base = _edje_box_layout_builtin + 4; + break; - default: -return NULL; - } + case 'v': + base = _edje_box_layout_builtin + 5; + break; - for (; (base->name) && (base->name[0] == name[0]); base++) - if (strcmp(base->name, name) == 0) - return base->cb; + default: + return NULL; + } +for (; (base->name) && (base->name[0] == name[0]); base++) + if (strcmp(base->name, name) == 0) +return base->cb; + } + else + return _edje_box_layout_builtin[0].cb; return NULL; } --
[EGIT] [tools/eflete] master 52/62: Merge "goupedit_calc: fix segfault on incorrect box layout"
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=76d6ba32ab1d8787387cfd3388c7aa3894cef64d commit 76d6ba32ab1d8787387cfd3388c7aa3894cef64d Merge: c94a857 0ba8fdb Author: Gerrit UserDate: Wed Dec 2 15:46:25 2015 +0200 Merge "goupedit_calc: fix segfault on incorrect box layout" src/bin/ui/workspace/groupedit_calc.c | 38 +++ 1 file changed, 21 insertions(+), 17 deletions(-) --
[EGIT] [tools/eflete] master 35/62: Merge "diff: add debug assertions"
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=6242fe6540da84b5c7c33c0f17c094519507e414 commit 6242fe6540da84b5c7c33c0f17c094519507e414 Merge: 81d631e 4c1efbd Author: Gerrit UserDate: Wed Dec 2 10:24:05 2015 +0200 Merge "diff: add debug assertions" src/bin/editor/diff.c | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) --
[EGIT] [tools/eflete] master 33/62: groupedit: delete unnecessary macro
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=13dcecdfa26495825c64cfb11bcddc9c0ab16331 commit 13dcecdfa26495825c64cfb11bcddc9c0ab16331 Author: Vyacheslav ReutskiyDate: Tue Dec 1 16:51:04 2015 +0200 groupedit: delete unnecessary macro Change-Id: I346368e30565aa0975dcb156b0fa55051ce562b7 --- src/bin/ui/workspace/groupedit_calc.c | 31 +++ 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/src/bin/ui/workspace/groupedit_calc.c b/src/bin/ui/workspace/groupedit_calc.c index 4421105..e7417bc 100644 --- a/src/bin/ui/workspace/groupedit_calc.c +++ b/src/bin/ui/workspace/groupedit_calc.c @@ -866,16 +866,17 @@ _part_draw_add(Ws_Groupedit_Smart_Data *sd, Part_ *part) gp->part = part; gp->item = NULL; -#define PART_VIEW_ADD() \ - gp->draw = elm_box_add(sd->parent); \ - elm_box_layout_set(gp->draw, evas_object_box_layout_stack, NULL, NULL); \ - gp->layout = elm_layout_add(sd->parent); \ - evas_object_size_hint_weight_set(gp->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); \ - evas_object_size_hint_align_set(gp->layout, EVAS_HINT_FILL, EVAS_HINT_FILL); \ - elm_layout_theme_set(gp->layout, "layout", "groupview", "default"); \ - evas_object_show(gp->layout); \ - elm_box_pack_end(gp->draw, gp->layout); \ - evas_object_show(gp->draw); \ + gp->draw = elm_box_add(sd->parent); + elm_box_layout_set(gp->draw, evas_object_box_layout_stack, NULL, NULL); + evas_object_show(gp->draw); + elm_box_pack_end(sd->box, gp->draw); + + gp->layout = elm_layout_add(sd->parent); + evas_object_size_hint_weight_set(gp->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(gp->layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_layout_theme_set(gp->layout, "layout", "groupview", "default"); + evas_object_show(gp->layout); + elm_box_pack_end(gp->draw, gp->layout); #define PART_VIEW_PROXY_SET() \ gp->proxy_part = evas_object_image_filled_add(sd->e); \ @@ -884,50 +885,40 @@ _part_draw_add(Ws_Groupedit_Smart_Data *sd, Part_ *part) elm_box_pack_end(gp->draw, gp->proxy_part); \ evas_object_show(gp->proxy_part); \ - elm_box_pack_end(sd->box, gp->draw); switch (part->type) { case EDJE_PART_TYPE_RECTANGLE: - PART_VIEW_ADD() PART_VIEW_PROXY_SET() break; case EDJE_PART_TYPE_TEXT: case EDJE_PART_TYPE_TEXTBLOCK: - PART_VIEW_ADD() PART_VIEW_PROXY_SET() elm_object_signal_emit(gp->layout, "border,text", "eflete"); break; case EDJE_PART_TYPE_IMAGE: - PART_VIEW_ADD() PART_VIEW_PROXY_SET() elm_object_signal_emit(gp->layout, "border,text", "eflete"); break; case EDJE_PART_TYPE_PROXY: // it part like image - PART_VIEW_ADD() PART_VIEW_PROXY_SET() elm_object_signal_emit(gp->layout, "border,proxy", "eflete"); break; case EDJE_PART_TYPE_SWALLOW: - PART_VIEW_ADD() elm_object_signal_emit(gp->layout, "border,swallow", "eflete"); break; case EDJE_PART_TYPE_SPACER: - PART_VIEW_ADD() elm_object_signal_emit(gp->layout, "border,spacer", "eflete"); break; case EDJE_PART_TYPE_GROUP: - PART_VIEW_ADD() PART_VIEW_PROXY_SET() elm_object_signal_emit(gp->layout, "border,group", "eflete"); break; case EDJE_PART_TYPE_TABLE: - PART_VIEW_ADD() PART_VIEW_PROXY_SET() elm_object_signal_emit(gp->layout, "border,table", "eflete"); _part_table_add(sd, gp); break; case EDJE_PART_TYPE_BOX: - PART_VIEW_ADD() PART_VIEW_PROXY_SET() elm_object_signal_emit(gp->layout, "border,box", "eflete"); _part_box_add(sd, gp); --
[EGIT] [tools/eflete] master 19/62: groupedit: update image nad proxy on all changes
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=928fa3ad22c8307cdfc3a04eaa83b0c0080e1d57 commit 928fa3ad22c8307cdfc3a04eaa83b0c0080e1d57 Author: Vyacheslav ReutskiyDate: Thu Nov 26 16:11:47 2015 +0200 groupedit: update image nad proxy on all changes It's not good solution, but now it's work. After refactoring need to separate the geometry calculation and update attributes for part, and call of necessity. Change-Id: Iece9e53e3a5319ee255b57a5ab4cb14a4fed1e2a --- src/bin/ui/workspace/groupedit_calc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bin/ui/workspace/groupedit_calc.c b/src/bin/ui/workspace/groupedit_calc.c index f4df182..22e886b 100644 --- a/src/bin/ui/workspace/groupedit_calc.c +++ b/src/bin/ui/workspace/groupedit_calc.c @@ -935,10 +935,10 @@ _parts_recalc(Ws_Groupedit_Smart_Data *sd) _common_param_update(gp, sd->group->edit_object); break; case EDJE_PART_TYPE_IMAGE: - if (sd->manual_calc) _image_param_update(gp, sd->group->edit_object); + _image_param_update(gp, sd->group->edit_object); break; - case EDJE_PART_TYPE_PROXY: // it part like image - if (sd->manual_calc) _proxy_param_update(gp, sd->group->edit_object); + case EDJE_PART_TYPE_PROXY: + _proxy_param_update(gp, sd->group->edit_object); break; case EDJE_PART_TYPE_TABLE: if (sd->manual_calc) --
[EGIT] [tools/eflete] master 37/62: Merge "editor: add methods that [un]blocks signals"
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=a286339a5792fb70decc5352cf16db7ffb0c88f7 commit a286339a5792fb70decc5352cf16db7ffb0c88f7 Merge: b6916e2 5525e34 Author: Gerrit UserDate: Wed Dec 2 10:24:17 2015 +0200 Merge "editor: add methods that [un]blocks signals" src/bin/editor/editor.h | 6 ++ src/bin/editor/editor_general.c | 39 +++ 2 files changed, 45 insertions(+) --
[EGIT] [tools/eflete] master 49/62: groupedit: delete unused char buffer
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=e56ffec5ab629b062a261be1464c7fd1974f7e89 commit e56ffec5ab629b062a261be1464c7fd1974f7e89 Author: Vyacheslav ReutskiyDate: Wed Dec 2 11:51:36 2015 +0200 groupedit: delete unused char buffer Change-Id: I7e54f62510bc035c86d554d4afca0064b5b11546 --- src/bin/ui/workspace/groupedit.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/bin/ui/workspace/groupedit.c b/src/bin/ui/workspace/groupedit.c index c83b9b2..828935d 100644 --- a/src/bin/ui/workspace/groupedit.c +++ b/src/bin/ui/workspace/groupedit.c @@ -200,7 +200,6 @@ _groupedit_smart_calculate(Evas_Object *o) { Evas_Coord x, y, w, h; Evas_Coord px, py, pw, ph; - char buff[16]; WS_GROUPEDIT_DATA_GET(o, priv) evas_object_geometry_get(priv->parent, , , , ); @@ -215,7 +214,6 @@ _groupedit_smart_calculate(Evas_Object *o) priv->con_current_size->y = y; priv->con_current_size->w = w; priv->con_current_size->h = h; -snprintf(buff, 16, "%i %i", priv->con_current_size->w, priv->con_current_size->h); } DBG("Groupedit geometry: x[%i] y[%i] w[%i] h[%i]", x, y, w, h); --
[EGIT] [tools/eflete] master 56/62: groupedit: move and resize groupedit only if it necessary
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=48cef367990638423076256c4fd02dd089f1615c commit 48cef367990638423076256c4fd02dd089f1615c Author: Vyacheslav ReutskiyDate: Wed Dec 2 12:08:24 2015 +0200 groupedit: move and resize groupedit only if it necessary Change-Id: I6b01b4807c8fab5edb7a444a7f10fc01911a3424 --- src/bin/ui/workspace/groupedit.c | 45 +--- src/bin/ui/workspace/groupedit_calc.c| 4 +-- src/bin/ui/workspace/groupedit_private.h | 2 +- 3 files changed, 21 insertions(+), 30 deletions(-) diff --git a/src/bin/ui/workspace/groupedit.c b/src/bin/ui/workspace/groupedit.c index 828935d..488b2bc 100644 --- a/src/bin/ui/workspace/groupedit.c +++ b/src/bin/ui/workspace/groupedit.c @@ -92,7 +92,7 @@ _groupedit_smart_add(Evas_Object *o) _unselect_part, o); priv->obj = o; - priv->con_current_size = (Groupedit_Geom *)mem_calloc(1, sizeof(Groupedit_Geom)); + priv->geom = (Groupedit_Geom *)mem_calloc(1, sizeof(Groupedit_Geom)); priv->zoom_factor = 1.0; priv->parts = NULL; priv->obj_area.obj = edje_object_add(priv->e); @@ -123,7 +123,7 @@ _groupedit_smart_del(Evas_Object *o) evas_object_hide(sd->group->edit_object); evas_object_del(sd->edit_obj_clipper); - free(sd->con_current_size); + free(sd->geom); free(sd->obj_area.geom); _groupedit_parent_sc->del(o); @@ -202,41 +202,32 @@ _groupedit_smart_calculate(Evas_Object *o) Evas_Coord px, py, pw, ph; WS_GROUPEDIT_DATA_GET(o, priv) - evas_object_geometry_get(priv->parent, , , , ); + evas_object_geometry_get(priv->parent, , , , ); evas_object_resize(priv->event, pw, ph); evas_object_move(priv->event, px, py); evas_object_geometry_get(o, , , , ); - if (!priv->separated) + if ((priv->geom->x != x) || (priv->geom->y != y) || + (priv->geom->w != w) || (priv->geom->h != h)) { -priv->con_current_size->x = x; -priv->con_current_size->y = y; -priv->con_current_size->w = w; -priv->con_current_size->h = h; +priv->geom->x = x; +priv->geom->y = y; +priv->geom->w = w; +priv->geom->h = h; + +evas_object_move(priv->group->edit_object,x ,y); +evas_object_resize(priv->group->edit_object, w, h); +evas_object_move(priv->box, x, y); +evas_object_resize(priv->box, w, h); } - - DBG("Groupedit geometry: x[%i] y[%i] w[%i] h[%i]", x, y, w, h); - if (!priv->separated) - { -evas_object_move(priv->group->edit_object, - priv->con_current_size->x, - priv->con_current_size->y); - } - evas_object_resize(priv->group->edit_object, - priv->con_current_size->w, - priv->con_current_size->h); - evas_object_move(priv->box, - priv->con_current_size->x, - priv->con_current_size->y); - - evas_object_resize(priv->box, - priv->con_current_size->w, - priv->con_current_size->h); + else + elm_box_recalculate(priv->box); priv->manual_calc = false; - evas_object_smart_callback_call(o, SIG_CHANGED, (void *)priv->con_current_size); + DBG("Groupedit geometry: x[%i] y[%i] w[%i] h[%i]", x, y, w, h); + evas_object_smart_callback_call(o, SIG_CHANGED, (void *)priv->geom); } /* this need for macro EVAS_SMART_SUBCLASS_NEW */ diff --git a/src/bin/ui/workspace/groupedit_calc.c b/src/bin/ui/workspace/groupedit_calc.c index 9943ca8..14dbb9e 100644 --- a/src/bin/ui/workspace/groupedit_calc.c +++ b/src/bin/ui/workspace/groupedit_calc.c @@ -1235,7 +1235,7 @@ _part_object_area_calc(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp) y = (yc + (int)(hc * relative)) + offset; edje_edit_string_free(rel_to); - xc = xg; wc = sd->con_current_size->w; + xc = xg; wc = sd->geom->w; rel_to = edje_edit_state_rel2_to_x_get(sd->group->edit_object, name, state, value); relative = edje_edit_state_rel2_relative_x_get(sd->group->edit_object, name, state, value); offset = edje_edit_state_rel2_offset_x_get(sd->group->edit_object, name, state, value); @@ -1248,7 +1248,7 @@ _part_object_area_calc(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp) if (w < 0) { x += w; w = 0; } edje_edit_string_free(rel_to); - yc = yg; hc = sd->con_current_size->h; + yc = yg; hc = sd->geom->h; rel_to = edje_edit_state_rel2_to_y_get(sd->group->edit_object, name, state, value); relative = edje_edit_state_rel2_relative_y_get(sd->group->edit_object, name, state, value); offset = edje_edit_state_rel2_offset_y_get(sd->group->edit_object, name, state, value); diff --git a/src/bin/ui/workspace/groupedit_private.h b/src/bin/ui/workspace/groupedit_private.h index e397c96..5595105 100644 --- a/src/bin/ui/workspace/groupedit_private.h +++
[EGIT] [tools/eflete] master 58/62: groupedit: integrate the Groupedit_Geom to smart data
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=e4eeb96641070a8b28d428bbee5daf605a66adbb commit e4eeb96641070a8b28d428bbee5daf605a66adbb Author: Vyacheslav ReutskiyDate: Wed Dec 2 12:23:52 2015 +0200 groupedit: integrate the Groupedit_Geom to smart data Change-Id: I419ad04bcd70f56ab7ef585d519cefaedb9f4f05 --- src/bin/ui/workspace/groupedit.c | 17 +++-- src/bin/ui/workspace/groupedit_calc.c| 4 ++-- src/bin/ui/workspace/groupedit_private.h | 2 +- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/bin/ui/workspace/groupedit.c b/src/bin/ui/workspace/groupedit.c index 1e44899..716a694 100644 --- a/src/bin/ui/workspace/groupedit.c +++ b/src/bin/ui/workspace/groupedit.c @@ -67,7 +67,6 @@ _groupedit_smart_add(Evas_Object *o) _unselect_part, o); priv->obj = o; - priv->geom = (Groupedit_Geom *)mem_calloc(1, sizeof(Groupedit_Geom)); priv->zoom_factor = 1.0; priv->parts = NULL; priv->separated = false; @@ -90,8 +89,6 @@ _groupedit_smart_del(Evas_Object *o) evas_object_hide(sd->group->edit_object); evas_object_del(sd->edit_obj_clipper); - free(sd->geom); - _groupedit_parent_sc->del(o); } @@ -174,13 +171,13 @@ _groupedit_smart_calculate(Evas_Object *o) evas_object_geometry_get(o, , , , ); - if ((priv->geom->x != x) || (priv->geom->y != y) || - (priv->geom->w != w) || (priv->geom->h != h)) + if ((priv->geom.x != x) || (priv->geom.y != y) || + (priv->geom.w != w) || (priv->geom.h != h)) { -priv->geom->x = x; -priv->geom->y = y; -priv->geom->w = w; -priv->geom->h = h; +priv->geom.x = x; +priv->geom.y = y; +priv->geom.w = w; +priv->geom.h = h; evas_object_move(priv->group->edit_object,x ,y); evas_object_resize(priv->group->edit_object, w, h); @@ -193,7 +190,7 @@ _groupedit_smart_calculate(Evas_Object *o) priv->manual_calc = false; DBG("Groupedit geometry: x[%i] y[%i] w[%i] h[%i]", x, y, w, h); - evas_object_smart_callback_call(o, SIG_CHANGED, (void *)priv->geom); + evas_object_smart_callback_call(o, SIG_CHANGED, >geom); } /* this need for macro EVAS_SMART_SUBCLASS_NEW */ diff --git a/src/bin/ui/workspace/groupedit_calc.c b/src/bin/ui/workspace/groupedit_calc.c index 14dbb9e..0374ed2 100644 --- a/src/bin/ui/workspace/groupedit_calc.c +++ b/src/bin/ui/workspace/groupedit_calc.c @@ -1235,7 +1235,7 @@ _part_object_area_calc(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp) y = (yc + (int)(hc * relative)) + offset; edje_edit_string_free(rel_to); - xc = xg; wc = sd->geom->w; + xc = xg; wc = sd->geom.w; rel_to = edje_edit_state_rel2_to_x_get(sd->group->edit_object, name, state, value); relative = edje_edit_state_rel2_relative_x_get(sd->group->edit_object, name, state, value); offset = edje_edit_state_rel2_offset_x_get(sd->group->edit_object, name, state, value); @@ -1248,7 +1248,7 @@ _part_object_area_calc(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp) if (w < 0) { x += w; w = 0; } edje_edit_string_free(rel_to); - yc = yg; hc = sd->geom->h; + yc = yg; hc = sd->geom.h; rel_to = edje_edit_state_rel2_to_y_get(sd->group->edit_object, name, state, value); relative = edje_edit_state_rel2_relative_y_get(sd->group->edit_object, name, state, value); offset = edje_edit_state_rel2_offset_y_get(sd->group->edit_object, name, state, value); diff --git a/src/bin/ui/workspace/groupedit_private.h b/src/bin/ui/workspace/groupedit_private.h index 6412d07..9cc3ebb 100644 --- a/src/bin/ui/workspace/groupedit_private.h +++ b/src/bin/ui/workspace/groupedit_private.h @@ -62,7 +62,7 @@ struct _Ws_Groupedit_Smart_Data Evas_Object *container; Evas_Object *parent; Evas_Object *box; - Groupedit_Geom *geom; + Groupedit_Geom geom; /* Paddings which solve scroller issue, when container data move to 0,0 coords */ struct { --
[EGIT] [apps/ephoto] master 01/01: Ephoto: Handle instances where a delete takes place in directories with only one image.
okra pushed a commit to branch master. http://git.enlightenment.org/apps/ephoto.git/commit/?id=b1fc28d881203f9e89cabcf4837bbc1d1dc3ea76 commit b1fc28d881203f9e89cabcf4837bbc1d1dc3ea76 Author: Stephen HoustonDate: Wed Dec 2 19:55:53 2015 -0600 Ephoto: Handle instances where a delete takes place in directories with only one image. --- src/bin/ephoto_single_browser.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/bin/ephoto_single_browser.c b/src/bin/ephoto_single_browser.c index ecc91cc..3e8f7f3 100644 --- a/src/bin/ephoto_single_browser.c +++ b/src/bin/ephoto_single_browser.c @@ -2428,8 +2428,11 @@ _entry_free(void *data, const Ephoto_Entry *entry) if (entry == sb->entry) { -_next_entry(sb); elm_object_item_del(entry->item); +if (eina_list_count(sb->ephoto->entries) <= 1) + evas_object_smart_callback_call(sb->main, "back", NULL); +else + _next_entry(sb); } } --
[EGIT] [apps/ephoto] master 01/01: Ephoto: Make sure to delete the entry item when deleted from single view.
okra pushed a commit to branch master. http://git.enlightenment.org/apps/ephoto.git/commit/?id=f45273dbaaf6b66895168fb09bd1cf76b557b59a commit f45273dbaaf6b66895168fb09bd1cf76b557b59a Author: Stephen HoustonDate: Wed Dec 2 19:22:15 2015 -0600 Ephoto: Make sure to delete the entry item when deleted from single view. --- src/bin/ephoto_single_browser.c | 1 + src/bin/ephoto_thumb_browser.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bin/ephoto_single_browser.c b/src/bin/ephoto_single_browser.c index 5019721..ecc91cc 100644 --- a/src/bin/ephoto_single_browser.c +++ b/src/bin/ephoto_single_browser.c @@ -2429,6 +2429,7 @@ _entry_free(void *data, const Ephoto_Entry *entry) if (entry == sb->entry) { _next_entry(sb); +elm_object_item_del(entry->item); } } diff --git a/src/bin/ephoto_thumb_browser.c b/src/bin/ephoto_thumb_browser.c index a81eca7..3f660fa 100644 --- a/src/bin/ephoto_thumb_browser.c +++ b/src/bin/ephoto_thumb_browser.c @@ -480,7 +480,7 @@ _todo_items_process(void *data) if (entry->item) { elm_object_item_data_set(entry->item, entry); -} + } else { ephoto_entry_free(tb->ephoto, entry); --