rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=e250d550d85b16dbff7fc6b30ab42c849bf9d169
commit e250d550d85b16dbff7fc6b30ab42c849bf9d169 Author: Vyacheslav Reutskiy <[email protected]> Date: Fri Dec 25 15:51:08 2015 +0200 Revert "groupedit: move the editable object to separate canvas" This reverts commit 104a16b55d5e8ea6004cc9b9d54bfe4698bc9004. Move the drawed object to enother canvas it's wrong way Change-Id: I0f4483ba85abc5da13804be11cd3398a874cc709 --- src/bin/ui/workspace/groupedit.c | 40 ++++++++++---------------------- src/bin/ui/workspace/groupedit_calc.c | 19 ++++++++------- src/bin/ui/workspace/groupedit_private.h | 2 -- 3 files changed, 22 insertions(+), 39 deletions(-) diff --git a/src/bin/ui/workspace/groupedit.c b/src/bin/ui/workspace/groupedit.c index a593d69..53e6915 100644 --- a/src/bin/ui/workspace/groupedit.c +++ b/src/bin/ui/workspace/groupedit.c @@ -73,9 +73,11 @@ _groupedit_smart_del(Evas_Object *o) WS_GROUPEDIT_DATA_GET(o, sd) _parts_list_free(sd); - gm_group_edit_object_unload(sd->group); + evas_object_smart_member_del(sd->group->edit_object); + evas_object_smart_member_del(sd->clipper); + evas_object_hide(sd->group->edit_object); - evas_object_del(sd->fake_win); + gm_group_edit_object_unload(sd->group); _groupedit_parent_sc->del(o); } @@ -87,8 +89,6 @@ _groupedit_smart_show(Evas_Object *o) WS_GROUPEDIT_DATA_GET(o, sd); evas_object_show(sd->event); - evas_object_show(sd->fake_win); - evas_object_show(sd->proxy); _groupedit_parent_sc->show(o); } @@ -101,8 +101,6 @@ _groupedit_smart_hide(Evas_Object *o) WS_GROUPEDIT_DATA_GET(o, sd) evas_object_hide(sd->event); - evas_object_hide(sd->fake_win); - evas_object_hide(sd->proxy); _groupedit_parent_sc->hide(o); } @@ -159,14 +157,10 @@ _groupedit_smart_calculate(Evas_Object *o) sd->geom.w = w; sd->geom.h = h; + evas_object_move(sd->group->edit_object,x ,y); evas_object_resize(sd->group->edit_object, w, h); + evas_object_move(sd->box, x, y); evas_object_resize(sd->box, w, h); - evas_object_resize(sd->fake_win, w, h); - - /* change the view port geometry */ - evas_object_move(sd->proxy, x, y); - evas_object_resize(sd->proxy, w, h); - elm_win_render(sd->fake_win); } else elm_box_recalculate(sd->box); @@ -202,7 +196,6 @@ groupedit_add(Evas_Object *parent, Group *group) { Evas *e; Evas_Object *obj; - Elm_Theme *theme; assert(parent != NULL); assert(group != NULL); @@ -212,33 +205,24 @@ groupedit_add(Evas_Object *parent, Group *group) WS_GROUPEDIT_DATA_GET(obj, sd); sd->parent = parent; - sd->fake_win = elm_win_add(ap.win, "inlined", ELM_WIN_INLINED_IMAGE); - elm_win_alpha_set(sd->fake_win, true); - evas_object_show(sd->fake_win); - sd->proxy = elm_win_inlined_image_object_get(sd->fake_win); - evas_object_smart_member_add(sd->proxy, obj); - - gm_group_edit_object_load(ap.project, group, evas_object_evas_get(sd->fake_win)); - - theme = elm_theme_new(); - elm_theme_copy(ap.theme, theme); - elm_object_theme_set(sd->fake_win, theme); - elm_theme_free(theme); - + gm_group_edit_object_load(ap.project, group, evas_object_evas_get(ap.win)); edje_object_animation_set(group->edit_object, false); TODO("set the state for all parts to default 0.0") sd->group = group; + evas_object_smart_member_add(sd->group->edit_object, obj); - sd->box = elm_box_add(sd->fake_win); + 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) * with such clipper object invisible and calculate geometry. */ evas_object_show(sd->group->edit_object); - sd->clipper = evas_object_rectangle_add(evas_object_evas_get(sd->fake_win)); + sd->clipper = evas_object_rectangle_add(evas_object_evas_get(sd->obj)); evas_object_clip_set(sd->group->edit_object, sd->clipper); + evas_object_smart_member_add(sd->clipper, obj); evas_object_show(sd->clipper); return obj; diff --git a/src/bin/ui/workspace/groupedit_calc.c b/src/bin/ui/workspace/groupedit_calc.c index c2f7bf7..956934e 100644 --- a/src/bin/ui/workspace/groupedit_calc.c +++ b/src/bin/ui/workspace/groupedit_calc.c @@ -227,7 +227,7 @@ _conteiner_cell_sizer_add(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp, const Eina_Stringshare *item_source; int min_w, min_h, max_w, max_h, w, h; - cell_content = edje_object_add(evas_object_evas_get(sd->fake_win)); + cell_content = edje_object_add(evas_object_evas_get(sd->obj)); item_source = edje_edit_part_item_source_get(sd->group->edit_object, gp->part->name, item_name); edje_object_file_set(cell_content, ap.project->dev, item_source); eina_stringshare_del(item_source); @@ -283,7 +283,7 @@ _part_table_items_add(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp, Eina_List span_col = 1; span_row = 1; - cell = elm_layout_add(sd->fake_win); + cell = elm_layout_add(sd->parent); evas_object_size_hint_align_set(cell, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_layout_theme_set(cell, "layout", "groupview", "default"); @@ -319,7 +319,7 @@ _part_table_add(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp) assert(gp->container == NULL); - gp->container = evas_object_table_add(evas_object_evas_get(sd->fake_win)); + gp->container = evas_object_table_add(evas_object_evas_get(sd->obj)); elm_box_pack_before(gp->draw, gp->container, gp->proxy_part); evas_object_show(gp->container); @@ -424,7 +424,7 @@ _part_box_add(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp) assert(gp->container == NULL); - gp->container = evas_object_box_add(evas_object_evas_get(sd->fake_win)); + gp->container = evas_object_box_add(evas_object_evas_get(sd->obj)); elm_box_pack_before(gp->draw, gp->container, gp->proxy_part); evas_object_show(gp->container); @@ -434,7 +434,7 @@ _part_box_add(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp) spread_h = edje_edit_part_item_spread_h_get(sd->group->edit_object, gp->part->name, str); for (i = 0; i < (spread_w * spread_h); i++) { - cell = elm_layout_add(sd->fake_win); + cell = elm_layout_add(sd->parent); evas_object_size_hint_align_set(cell, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_layout_theme_set(cell, "layout", "groupview", "default"); evas_object_show(cell); @@ -597,6 +597,7 @@ _part_update(Ws_Groupedit_Smart_Data *sd, Groupedit_Part *gp) default: break; } + //evas_object_smart_callback_call(sd->obj, SIG_GEOMETRY_CHANGED, (void *)sd->real_size); return true; } @@ -612,12 +613,12 @@ _part_draw_add(Ws_Groupedit_Smart_Data *sd, Part_ *part) gp = mem_calloc(1, sizeof(Groupedit_Part)); gp->part = part; - gp->draw = elm_box_add(sd->fake_win); + 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->fake_win); + 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"); @@ -627,7 +628,7 @@ _part_draw_add(Ws_Groupedit_Smart_Data *sd, Part_ *part) gp->part->visible = true; #define PART_VIEW_PROXY_SET() \ - gp->proxy_part = evas_object_image_filled_add(evas_object_evas_get(sd->fake_win)); \ + gp->proxy_part = evas_object_image_filled_add(evas_object_evas_get(sd->obj)); \ 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); \ @@ -678,7 +679,7 @@ _part_draw_add(Ws_Groupedit_Smart_Data *sd, Part_ *part) * Here created transparent rectangle as draw evas primitives. */ TODO("add support for all part types.") - gp->draw = evas_object_rectangle_add(evas_object_evas_get(sd->fake_win)); + gp->draw = evas_object_rectangle_add(evas_object_evas_get(sd->obj)); evas_object_color_set(gp->draw, 0, 0, 0, 0); break; } diff --git a/src/bin/ui/workspace/groupedit_private.h b/src/bin/ui/workspace/groupedit_private.h index f159f6a..c7328e5 100644 --- a/src/bin/ui/workspace/groupedit_private.h +++ b/src/bin/ui/workspace/groupedit_private.h @@ -55,8 +55,6 @@ struct _Ws_Groupedit_Smart_Data Evas_Object_Smart_Clipped_Data base; Group *group; Evas_Object *obj; - Evas_Object *fake_win; - Evas_Object *proxy; Evas_Object *event; Evas_Object *parent; Evas_Object *box; --
