diff --git a/src/bin/live_edit.c b/src/bin/live_edit.c index 75990f1..16bcab9 100644 --- a/src/bin/live_edit.c +++ b/src/bin/live_edit.c @@ -222,7 +222,9 @@ view_obj_get(live_data *ld) { //This is a trick! we got the actual view object from the live edit. Evas_Object *o = view_scroller_get(ld); + if (!o) return NULL; Evas_Object *o2 = elm_object_content_get(o); + if (!o2) return NULL; return elm_object_part_content_get(o2, "elm.swallow.content"); } @@ -1959,7 +1961,7 @@ rel_to_values_reset(live_data *ld) ld->rel_to_info.min_h = 0; } -static void +static Eina_Bool live_edit_layer_set(live_data *ld) { //Keygrabber @@ -1995,7 +1997,15 @@ live_edit_layer_set(live_data *ld) //Create Live View Layout Evas_Object *layout = elm_layout_add(ld->live_view); Evas_Object *view_obj = view_obj_get(ld); + if (!view_obj) + { + stats_info_msg_update("Live Edit is not avaiable here. A base group is required!"); + live_edit_cancel(EINA_FALSE); + return EINA_FALSE; + } evas_object_smart_member_add(layout, view_obj); + //Live Edit layout should be more than spacer and dummies. + evas_object_layer_set(layout, EVAS_LAYER_MAX); elm_layout_file_set(layout, EDJE_PATH, "live_edit_layout"); evas_object_event_callback_add(layout, EVAS_CALLBACK_MOUSE_DOWN, layout_mouse_down_cb, ld); @@ -2024,6 +2034,8 @@ live_edit_layer_set(live_data *ld) ld->last_cp = Ctrl_Pt_Cnt; panes_live_edit_fixed_bar_visible_set(EINA_TRUE); + + return EINA_TRUE; } static void @@ -2041,7 +2053,7 @@ live_btn_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED, ld->live_view = enventor_object_live_view_get(base_enventor_get()); ld->on = EINA_TRUE; - live_edit_layer_set(ld); + if (!live_edit_layer_set(ld)) return; stats_info_msg_update(_("Double click part to confirm." "(Esc = cancel, Direction Key =" diff --git a/src/lib/dummy_obj.c b/src/lib/dummy_obj.c index f8740d7..ac72a83 100644 --- a/src/lib/dummy_obj.c +++ b/src/lib/dummy_obj.c @@ -146,22 +146,25 @@ dummy_objs_update(dummy_obj *dummy) } if (!obj) { + //Trick!. set smart members of actual live view object. Evas_Object *scroller = view_obj_get(VIEW_DATA); - Evas_Object *scroller_edje = elm_layout_edje_get(scroller); - Evas_Object *clipper = - (Evas_Object *)edje_object_part_object_get(scroller_edje, - "clipper"); - obj = elm_layout_add(scroller); - elm_layout_file_set(obj, EDJE_PATH, "spacer"); - evas_object_smart_member_add(obj, scroller); + if (!scroller) continue; + Evas_Object *o = elm_object_content_get(scroller); + if (!o) continue; + Evas_Object *o2 = + elm_object_part_content_get(o, "elm.swallow.content"); + if (!o2) continue; + obj = edje_object_add(evas); + edje_object_file_set(obj, EDJE_PATH, "spacer"); + evas_object_layer_set(obj, EVAS_LAYER_MAX - 1); + evas_object_smart_member_add(obj, o2); po = malloc(sizeof(part_obj)); po->obj = obj; po->name = eina_stringshare_add(part_name); dummy->spacers = eina_list_append(dummy->spacers, po); evas_object_show(obj); - evas_object_clip_set(obj, clipper); evas_object_data_set(obj, EDIT_LAYOUT_KEY, dummy->layout); evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_DOWN, diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index 79f773a..34c29da 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -1427,6 +1427,7 @@ edit_init(Enventor_Object *enventor, Enventor_Item *it) ed->pd = parser_init(); ed->rd = redoundo_init(ed, enventor); ed->sh = syntax_init(ed); + ed->main = (enventor_object_main_item_get(ed->enventor) == ed->it); return ed; } @@ -1843,7 +1844,7 @@ edit_text_get(edit_data *ed) Eina_Bool edit_is_main_file(edit_data *ed) { - return (enventor_object_main_item_get(ed->enventor) == ed->it); + return ed->main; } Eina_Bool diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c index 34146b2..58f07a7 100644 --- a/src/lib/edc_parser.c +++ b/src/lib/edc_parser.c @@ -321,7 +321,6 @@ cur_context_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) const char *DEF_STATE_NAME = "default"; const int DEF_STATE_LEN = 7; - cur_context_td *td = data; char *utf8 = td->utf8; int cur_pos = td->cur_pos; @@ -346,6 +345,8 @@ cur_context_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) int cur_line = 1; Eina_List *macro_list = NULL; + if (!collections) bracket = 1; + if (td->pd->macro_update) { parser_macro_list_set(td->pd, (const char *) utf8); @@ -397,28 +398,15 @@ cur_context_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) { bracket--; p++; - - if (collections) - { - if (bracket == 1) group_name = NULL; - else if (bracket == 2 && inside_parts == EINA_TRUE) - inside_parts = EINA_FALSE; - else if (bracket == 3) part_name = NULL; - else if (bracket == 4) desc_name = NULL; - } - else - { - if (bracket == 0) group_name = NULL; - else if (bracket == 1 && inside_parts == EINA_TRUE) - inside_parts = EINA_FALSE; - else if (bracket == 2) part_name = NULL; - else if (bracket == 3) desc_name = NULL; - } + if (bracket == 1) group_name = NULL; + else if (bracket == 2 && inside_parts == EINA_TRUE) + inside_parts = EINA_FALSE; + else if (bracket == 3) part_name = NULL; + else if (bracket == 4) desc_name = NULL; continue; } //check block "Parts" in - if ((collections && (bracket == 2)) || - (!collections && (bracket == 1))) + if (bracket == 2) { if (!strncmp(p, PARTS, PARTS_LEN)) { @@ -429,8 +417,7 @@ cur_context_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) } } //Check Part in - if ((collections && (bracket == 3)) || - (!collections && (bracket == 2))) + if (bracket == 3) { int part_idx = -1; //part ? image ? swallow ? text ? rect ? @@ -461,8 +448,7 @@ cur_context_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) } } //Check Description in - if ((collections && (bracket == 4)) || - (!collections && (bracket == 3))) + if (bracket == 4) { //description? or desc? int desc_idx = -1; @@ -559,8 +545,7 @@ cur_context_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) } } //Check Group in. Probably inside of collections or the most outside. - if ((collections && (bracket == 1)) || - (!collections && (bracket == 0))) + if (bracket == 1) { if (!strncmp(p, GROUP, GROUP_LEN)) { diff --git a/src/lib/edj_mgr.c b/src/lib/edj_mgr.c index 46e5e02..dccae24 100644 --- a/src/lib/edj_mgr.c +++ b/src/lib/edj_mgr.c @@ -168,7 +168,6 @@ edj_mgr_view_switch_to(view_data *vd) elm_object_part_content_unset(em->layout, "elm.swallow.content"); elm_object_part_content_set(em->layout, "elm.swallow.content", view_obj_get(vd)); - view_scale_set(vd, em->view_scale); //Switching effect diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c index 8ab339f..a9455ae 100644 --- a/src/lib/enventor_smart.c +++ b/src/lib/enventor_smart.c @@ -767,7 +767,7 @@ _enventor_object_template_part_insert(Eo *obj EINA_UNUSED, rel2_x_to = buf; } - return template_part_insert(pd->main_it.ed, part, insert_type, + return template_part_insert(pd->focused_it->ed, part, insert_type, fixed_w, fixed_h, rel1_x_to, rel1_y_to, rel2_x_to, rel2_y_to,