From: Enlightenment S. <no-...@en...> - 2008-10-25 02:14:50
|
Log: fix leak in entry anchors Author: raster Date: 2008-10-24 19:14:48 -0700 (Fri, 24 Oct 2008) New Revision: 37083 Modified: trunk/edje/src/lib/edje_entry.c Modified: trunk/edje/src/lib/edje_entry.c =================================================================== --- trunk/edje/src/lib/edje_entry.c 2008-10-25 02:13:52 UTC (rev 37082) +++ trunk/edje/src/lib/edje_entry.c 2008-10-25 02:14:48 UTC (rev 37083) @@ -562,6 +562,7 @@ free(sel); an->sel = eina_list_remove_list(an->sel, an->sel); } + free(an); en->anchors = eina_list_remove_list(en->anchors, en->anchors); } } |
From: Enlightenment S. <no-...@en...> - 2008-10-26 11:05:54
|
Log: ret null - not nothing. Author: raster Date: 2008-10-26 04:04:53 -0700 (Sun, 26 Oct 2008) New Revision: 37131 Modified: trunk/edje/src/lib/edje_entry.c Modified: trunk/edje/src/lib/edje_entry.c =================================================================== --- trunk/edje/src/lib/edje_entry.c 2008-10-26 10:18:07 UTC (rev 37130) +++ trunk/edje/src/lib/edje_entry.c 2008-10-26 11:04:53 UTC (rev 37131) @@ -1293,7 +1293,7 @@ Eina_List *l; Anchor *an; - if (!en) return; + if (!en) return NULL; EINA_LIST_FOREACH(en->anchors, l, an) { if (!strcmp(anchor, an->name)) |
From: Enlightenment S. <no-...@en...> - 2008-10-28 04:58:44
|
Log: leak-- Author: raster Date: 2008-10-27 21:58:39 -0700 (Mon, 27 Oct 2008) New Revision: 37262 Modified: trunk/edje/src/lib/edje_entry.c trunk/edje/src/lib/edje_var.c Modified: trunk/edje/src/lib/edje_entry.c =================================================================== --- trunk/edje/src/lib/edje_entry.c 2008-10-28 04:01:10 UTC (rev 37261) +++ trunk/edje/src/lib/edje_entry.c 2008-10-28 04:58:39 UTC (rev 37262) @@ -336,23 +336,34 @@ } x = y = w = h = -1; evas_object_geometry_get(o, &x, &y, &w, &h); - EINA_LIST_FOREACH(en->sel, l, sel) + if (en->have_selection) { - Evas_Textblock_Rectangle *r; - - r = range->data; - if (sel->obj_bg) + EINA_LIST_FOREACH(en->sel, l, sel) { - evas_object_move(sel->obj_bg, x + r->x, y + r->y); - evas_object_resize(sel->obj_bg, r->w, r->h); + Evas_Textblock_Rectangle *r; + + r = range->data; + if (sel->obj_bg) + { + evas_object_move(sel->obj_bg, x + r->x, y + r->y); + evas_object_resize(sel->obj_bg, r->w, r->h); + } + if (sel->obj_fg) + { + evas_object_move(sel->obj_fg, x + r->x, y + r->y); + evas_object_resize(sel->obj_fg, r->w, r->h); + } + range = eina_list_remove_list(range, range); + free(r); } - if (sel->obj_fg) + } + else + { + while (range) { - evas_object_move(sel->obj_fg, x + r->x, y + r->y); - evas_object_resize(sel->obj_fg, r->w, r->h); + free(range->data); + range = eina_list_remove_list(range, range); } - range = eina_list_remove_list(range, range); - free(r); } } Modified: trunk/edje/src/lib/edje_var.c =================================================================== --- trunk/edje/src/lib/edje_var.c 2008-10-28 04:01:10 UTC (rev 37261) +++ trunk/edje/src/lib/edje_var.c 2008-10-28 04:58:39 UTC (rev 37262) @@ -1006,7 +1006,8 @@ ea->edje = ed; ea->func = fn; ea->val = val; - _edje_anim_list = eina_list_append(_edje_anim_list, ed); + if (!ed->var_pool->animators) + _edje_anim_list = eina_list_append(_edje_anim_list, ed); ed->var_pool->animators = eina_list_prepend(ed->var_pool->animators, ea); if (!_edje_animator) _edje_animator = ecore_animator_add(_edje_var_anim_cb, NULL); |
From: Enlightenment S. <no-...@en...> - 2008-11-02 02:43:48
|
Log: also use looptime Author: raster Date: 2008-11-01 19:43:43 -0700 (Sat, 01 Nov 2008) New Revision: 37394 Modified: trunk/edje/src/lib/edje_callbacks.c trunk/edje/src/lib/edje_program.c trunk/edje/src/lib/edje_var.c Modified: trunk/edje/src/lib/edje_callbacks.c =================================================================== --- trunk/edje/src/lib/edje_callbacks.c 2008-11-02 02:36:10 UTC (rev 37393) +++ trunk/edje/src/lib/edje_callbacks.c 2008-11-02 02:43:43 UTC (rev 37394) @@ -338,7 +338,7 @@ Eina_List *animl = NULL; Edje *ed; - t = ecore_time_get(); + t = ecore_loop_time_get(); EINA_LIST_FOREACH(_edje_animators, l, ed) { _edje_ref(ed); Modified: trunk/edje/src/lib/edje_program.c =================================================================== --- trunk/edje/src/lib/edje_program.c 2008-11-02 02:36:10 UTC (rev 37393) +++ trunk/edje/src/lib/edje_program.c 2008-11-02 02:43:43 UTC (rev 37394) @@ -575,7 +575,7 @@ if (!ed->actions) _edje_animators = eina_list_append(_edje_animators, ed); ed->actions = eina_list_append(ed->actions, runp); - runp->start_time = ecore_time_get(); + runp->start_time = ecore_loop_time_get(); runp->edje = ed; runp->program = pr; if (!_edje_timer) Modified: trunk/edje/src/lib/edje_var.c =================================================================== --- trunk/edje/src/lib/edje_var.c 2008-11-02 02:36:10 UTC (rev 37393) +++ trunk/edje/src/lib/edje_var.c 2008-11-02 02:43:43 UTC (rev 37394) @@ -50,7 +50,7 @@ double t; const void *tmp; - t = ecore_time_get(); + t = ecore_loop_time_get(); EINA_LIST_FOREACH(_edje_anim_list, l, tmp) tl = eina_list_append(tl, tmp); while (tl) @@ -1000,7 +1000,7 @@ if (fn == EMBRYO_FUNCTION_NONE) return 0; ea = calloc(1, sizeof(Edje_Var_Animator)); if (!ea) return 0; - ea->start = ecore_time_get(); + ea->start = ecore_loop_time_get(); ea->len = len; ea->id = ++ed->var_pool->id_count; ea->edje = ed; |
From: Enlightenment S. <no-...@en...> - 2008-11-17 05:54:12
|
Log: track subobjs (used by entry only for now) and emit signals to them too Author: raster Date: 2008-11-16 21:54:01 -0800 (Sun, 16 Nov 2008) New Revision: 37688 Modified: trunk/edje/src/lib/edje_entry.c trunk/edje/src/lib/edje_load.c trunk/edje/src/lib/edje_private.h trunk/edje/src/lib/edje_program.c trunk/edje/src/lib/edje_util.c Modified: trunk/edje/src/lib/edje_entry.c =================================================================== --- trunk/edje/src/lib/edje_entry.c 2008-11-17 04:10:07 UTC (rev 37687) +++ trunk/edje/src/lib/edje_entry.c 2008-11-17 05:54:01 UTC (rev 37688) @@ -273,6 +273,8 @@ Sel *sel; sel = en->sel->data; + en->rp->edje->subobjs = eina_list_remove(en->rp->edje->subobjs, sel->obj_bg); + en->rp->edje->subobjs = eina_list_remove(en->rp->edje->subobjs, sel->obj_fg); if (sel->obj_bg) evas_object_del(sel->obj_bg); if (sel->obj_fg) evas_object_del(sel->obj_fg); free(sel); @@ -302,6 +304,8 @@ while (en->sel) { sel = en->sel->data; + en->rp->edje->subobjs = eina_list_remove(en->rp->edje->subobjs, sel->obj_bg); + en->rp->edje->subobjs = eina_list_remove(en->rp->edje->subobjs, sel->obj_fg); if (sel->obj_bg) evas_object_del(sel->obj_bg); if (sel->obj_fg) evas_object_del(sel->obj_fg); free(sel); @@ -323,6 +327,8 @@ evas_object_pass_events_set(ob, 1); evas_object_show(ob); sel->obj_bg = ob; + en->rp->edje->subobjs = eina_list_append(en->rp->edje->subobjs, sel->obj_bg); + ob = edje_object_add(en->rp->edje->evas); edje_object_file_set(ob, en->rp->edje->path, en->rp->part->source2); evas_object_smart_member_add(ob, smart); @@ -331,6 +337,7 @@ evas_object_pass_events_set(ob, 1); evas_object_show(ob); sel->obj_fg = ob; + en->rp->edje->subobjs = eina_list_append(en->rp->edje->subobjs, sel->obj_fg); } } } @@ -503,6 +510,8 @@ while (an->sel) { sel = an->sel->data; + en->rp->edje->subobjs = eina_list_remove(en->rp->edje->subobjs, sel->obj_bg); + en->rp->edje->subobjs = eina_list_remove(en->rp->edje->subobjs, sel->obj_fg); if (sel->obj_bg) evas_object_del(sel->obj_bg); if (sel->obj_fg) evas_object_del(sel->obj_fg); if (sel->obj) evas_object_del(sel->obj); @@ -523,6 +532,8 @@ evas_object_pass_events_set(ob, 1); evas_object_show(ob); sel->obj_bg = ob; + en->rp->edje->subobjs = eina_list_append(en->rp->edje->subobjs, sel->obj_bg); + ob = edje_object_add(en->rp->edje->evas); edje_object_file_set(ob, en->rp->edje->path, en->rp->part->source6); evas_object_smart_member_add(ob, smart); @@ -531,6 +542,8 @@ evas_object_pass_events_set(ob, 1); evas_object_show(ob); sel->obj_fg = ob; + en->rp->edje->subobjs = eina_list_append(en->rp->edje->subobjs, sel->obj_fg); + ob = evas_object_rectangle_add(en->rp->edje->evas); evas_object_color_set(ob, 0, 0, 0, 0); evas_object_smart_member_add(ob, smart); @@ -590,6 +603,8 @@ while (an->sel) { Sel *sel = an->sel->data; + en->rp->edje->subobjs = eina_list_remove(en->rp->edje->subobjs, sel->obj_bg); + en->rp->edje->subobjs = eina_list_remove(en->rp->edje->subobjs, sel->obj_fg); if (sel->obj_bg) evas_object_del(sel->obj_bg); if (sel->obj_fg) evas_object_del(sel->obj_fg); if (sel->obj) evas_object_del(sel->obj); @@ -1189,6 +1204,7 @@ evas_object_stack_below(en->cursor_bg, rp->object); evas_object_clip_set(en->cursor_bg, evas_object_clip_get(rp->object)); evas_object_pass_events_set(en->cursor_bg, 1); + rp->edje->subobjs = eina_list_append(rp->edje->subobjs, en->cursor_bg); en->cursor_fg = edje_object_add(rp->edje->evas); edje_object_file_set(en->cursor_fg, rp->edje->path, rp->part->source4); @@ -1196,12 +1212,13 @@ evas_object_stack_above(en->cursor_fg, rp->object); evas_object_clip_set(en->cursor_fg, evas_object_clip_get(rp->object)); evas_object_pass_events_set(en->cursor_fg, 1); + rp->edje->subobjs = eina_list_append(rp->edje->subobjs, en->cursor_fg); + if (rp->part->entry_mode >= EDJE_ENTRY_EDIT_MODE_EDITABLE) { evas_object_show(en->cursor_bg); evas_object_show(en->cursor_fg); } - en->cursor = evas_object_textblock_cursor_get(rp->object); } @@ -1213,6 +1230,8 @@ rp->entry_data = NULL; _sel_clear(en->cursor, rp->object, en); _anchors_clear(en->cursor, rp->object, en); + rp->edje->subobjs = eina_list_remove(rp->edje->subobjs, en->cursor_bg); + rp->edje->subobjs = eina_list_remove(rp->edje->subobjs, en->cursor_fg); evas_object_del(en->cursor_bg); evas_object_del(en->cursor_fg); free(en); Modified: trunk/edje/src/lib/edje_load.c =================================================================== --- trunk/edje/src/lib/edje_load.c 2008-11-17 04:10:07 UTC (rev 37687) +++ trunk/edje/src/lib/edje_load.c 2008-11-17 05:54:01 UTC (rev 37688) @@ -587,6 +587,12 @@ ed->load_error = EDJE_LOAD_ERROR_NONE; _edje_emit(ed, "load", NULL); } + // this has to be here to textblock works! otherwise textblock objects + // don't have styles. withotu styles textblock doesnt know how to + // convert markup to format nodes+text - so if u append or modify the + // text by appending format or text nodes, you lose the markup as it + // has no idea what to do. this forces at least a style to be applied + edje_object_calc_force(obj); return 1; } else Modified: trunk/edje/src/lib/edje_private.h =================================================================== --- trunk/edje/src/lib/edje_private.h 2008-11-17 04:10:07 UTC (rev 37687) +++ trunk/edje/src/lib/edje_private.h 2008-11-17 05:54:01 UTC (rev 37688) @@ -629,6 +629,7 @@ Edje_Real_Part **table_parts; Edje_Program **table_programs; Edje_Real_Part *focused_part; + Eina_List *subobjs; void *script_only_data; int table_programs_size; int table_parts_size; @@ -1238,5 +1239,5 @@ const Eina_List *_edje_entry_anchor_geometry_get(Edje_Real_Part *rp, const char *anchor); const Eina_List *_edje_entry_anchors_list(Edje_Real_Part *rp); void _edje_entry_cursor_geometry_get(Edje_Real_Part *rp, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch); - + #endif Modified: trunk/edje/src/lib/edje_program.c =================================================================== --- trunk/edje/src/lib/edje_program.c 2008-11-17 04:10:07 UTC (rev 37687) +++ trunk/edje/src/lib/edje_program.c 2008-11-17 05:54:01 UTC (rev 37688) @@ -812,11 +812,22 @@ _edje_emit(Edje *ed, const char *sig, const char *src) { Edje_Message_Signal emsg; - + Eina_List *l; + Evas_Object *obj; + if (ed->delete_me) return; emsg.sig = sig; emsg.src = src; _edje_message_send(ed, EDJE_QUEUE_SCRIPT, EDJE_MESSAGE_SIGNAL, 0, &emsg); + EINA_LIST_FOREACH(ed->subobjs, l, obj) + { + Edje *ed2; + + ed2 = _edje_fetch(obj); + if (!ed2) continue; + if (ed2->delete_me) continue; + _edje_message_send(ed2, EDJE_QUEUE_SCRIPT, EDJE_MESSAGE_SIGNAL, 0, &emsg); + } } struct _Edje_Program_Data Modified: trunk/edje/src/lib/edje_util.c =================================================================== --- trunk/edje/src/lib/edje_util.c 2008-11-17 04:10:07 UTC (rev 37687) +++ trunk/edje/src/lib/edje_util.c 2008-11-17 05:54:01 UTC (rev 37688) @@ -919,7 +919,7 @@ rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) return NULL; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) - return _edje_entry_text_get(rp); + return _edje_entry_text_get(rp); else { if (rp->part->type == EDJE_PART_TYPE_TEXT) return rp->text.text; |
From: Enlightenment S. <no-...@en...> - 2008-11-17 06:17:14
|
Log: make click below text put cursor at end Author: raster Date: 2008-11-16 22:17:09 -0800 (Sun, 16 Nov 2008) New Revision: 37690 Modified: trunk/edje/src/lib/edje_entry.c Modified: trunk/edje/src/lib/edje_entry.c =================================================================== --- trunk/edje/src/lib/edje_entry.c 2008-11-17 05:58:21 UTC (rev 37689) +++ trunk/edje/src/lib/edje_entry.c 2008-11-17 06:17:09 UTC (rev 37690) @@ -1060,13 +1060,19 @@ if (!evas_textblock_cursor_char_coord_set(en->cursor, en->cx, en->cy)) { Evas_Coord lx, ly, lw, lh; + int line; - evas_textblock_cursor_line_coord_set(en->cursor, en->cy); - evas_textblock_cursor_line_geometry_get(en->cursor, &lx, &ly, &lw, &lh); - if (en->cx <= lx) - _curs_lin_start(en->cursor, rp->object, en); - else - _curs_lin_end(en->cursor, rp->object, en); + line = evas_textblock_cursor_line_coord_set(en->cursor, en->cy); + if (line == -1) + _curs_end(en->cursor, rp->object, en); + else + { + evas_textblock_cursor_line_geometry_get(en->cursor, &lx, &ly, &lw, &lh); + if (en->cx <= lx) + _curs_lin_start(en->cursor, rp->object, en); + else + _curs_lin_end(en->cursor, rp->object, en); + } } en->selecting = 1; _sel_clear(en->cursor, rp->object, en); |
From: Enlightenment S. <no-...@en...> - 2008-11-18 01:47:06
|
Log: and actually force styles to be assigned early. Author: raster Date: 2008-11-17 17:46:56 -0800 (Mon, 17 Nov 2008) New Revision: 37695 Modified: trunk/edje/src/lib/edje_load.c Modified: trunk/edje/src/lib/edje_load.c =================================================================== --- trunk/edje/src/lib/edje_load.c 2008-11-18 01:46:14 UTC (rev 37694) +++ trunk/edje/src/lib/edje_load.c 2008-11-18 01:46:56 UTC (rev 37695) @@ -586,13 +586,35 @@ _edje_unref(ed); ed->load_error = EDJE_LOAD_ERROR_NONE; _edje_emit(ed, "load", NULL); + /* instantiate 'internal swallows' */ + for (i = 0; i < ed->table_parts_size; i++) + { + Edje_Real_Part *rp; + + rp = ed->table_parts[i]; + if ((rp->part->type == EDJE_PART_TYPE_TEXTBLOCK) && + (rp->part->default_desc)) + { + Edje_Style *stl = NULL; + const char *style; + + style = rp->part->default_desc->text.style; + if (style) + { + EINA_LIST_FOREACH(ed->file->styles, l, stl) + { + if ((stl->name) && (!strcmp(stl->name, style))) break; + stl = NULL; + } + } + if (stl) + { + if (evas_object_textblock_style_get(rp->object) != stl->style) + evas_object_textblock_style_set(rp->object, stl->style); + } + } + } } - // this has to be here to textblock works! otherwise textblock objects - // don't have styles. withotu styles textblock doesnt know how to - // convert markup to format nodes+text - so if u append or modify the - // text by appending format or text nodes, you lose the markup as it - // has no idea what to do. this forces at least a style to be applied - edje_object_calc_force(obj); return 1; } else |
From: Enlightenment S. <no-...@en...> - 2008-11-18 08:45:32
|
Log: add calls to select all/none Author: raster Date: 2008-11-18 00:45:27 -0800 (Tue, 18 Nov 2008) New Revision: 37700 Modified: trunk/edje/src/lib/Edje.h trunk/edje/src/lib/edje_entry.c trunk/edje/src/lib/edje_private.h trunk/edje/src/lib/edje_util.c Modified: trunk/edje/src/lib/Edje.h =================================================================== --- trunk/edje/src/lib/Edje.h 2008-11-18 06:56:31 UTC (rev 37699) +++ trunk/edje/src/lib/Edje.h 2008-11-18 08:45:27 UTC (rev 37700) @@ -236,6 +236,9 @@ EAPI void edje_object_part_text_set (Evas_Object *obj, const char *part, const char *text); EAPI const char *edje_object_part_text_get (const Evas_Object *obj, const char *part); EAPI const char *edje_object_part_text_selection_get(const Evas_Object *obj, const char *part); + EAPI void edje_object_part_text_select_none(const Evas_Object *obj, const char *part); + EAPI void edje_object_part_text_select_all(const Evas_Object *obj, const char *part); + EAPI void edje_object_part_text_insert (Evas_Object *obj, const char *part, const char *text); EAPI Eina_List *edje_object_part_text_anchor_list_get(const Evas_Object *obj, const char *part); EAPI Eina_List *edje_object_part_text_anchor_geometry_get(const Evas_Object *obj, const char *part, const char *anchor); Modified: trunk/edje/src/lib/edje_entry.c =================================================================== --- trunk/edje/src/lib/edje_entry.c 2008-11-18 06:56:31 UTC (rev 37699) +++ trunk/edje/src/lib/edje_entry.c 2008-11-18 08:45:27 UTC (rev 37700) @@ -27,13 +27,6 @@ #include "edje_private.h" -// FIXME: need a way to propagate emits to selections and cursors (eg for disabled etc.) -// FIXME: look for anchors <+ a href=X>...</> in nodes - make matching anchor -// ranges (2 cursors) AND then make matching acnhor event objects, -// capture events on those objects, emit achor mouse,in, mouse,out, -// mouse,down and mouse,up -// FIXME: apis 's query anchor stuff???, anchor revents - typedef struct _Entry Entry; typedef struct _Sel Sel; typedef struct _Anchor Anchor; @@ -1345,6 +1338,27 @@ _curs_end(en->cursor, rp->object, en); } +void +_edje_entry_select_none(Edje_Real_Part *rp) +{ + Entry *en = rp->entry_data; + if (!en) return; + _sel_clear(en->cursor, rp->object, en); +} + +void +_edje_entry_select_all(Edje_Real_Part *rp) +{ + Entry *en = rp->entry_data; + if (!en) return; + _sel_clear(en->cursor, rp->object, en); + _curs_start(en->cursor, rp->object, en); + _sel_enable(en->cursor, rp->object, en); + _sel_start(en->cursor, rp->object, en); + _curs_end(en->cursor, rp->object, en); + _sel_extend(en->cursor, rp->object, en); +} + const Eina_List * _edje_entry_anchor_geometry_get(Edje_Real_Part *rp, const char *anchor) { Modified: trunk/edje/src/lib/edje_private.h =================================================================== --- trunk/edje/src/lib/edje_private.h 2008-11-18 06:56:31 UTC (rev 37699) +++ trunk/edje/src/lib/edje_private.h 2008-11-18 08:45:27 UTC (rev 37700) @@ -1236,6 +1236,8 @@ void _edje_entry_text_markup_insert(Edje_Real_Part *rp, const char *text); void _edje_entry_set_cursor_start(Edje_Real_Part *rp); void _edje_entry_set_cursor_end(Edje_Real_Part *rp); +void _edje_entry_select_none(Edje_Real_Part *rp); +void _edje_entry_select_all(Edje_Real_Part *rp); const Eina_List *_edje_entry_anchor_geometry_get(Edje_Real_Part *rp, const char *anchor); const Eina_List *_edje_entry_anchors_list(Edje_Real_Part *rp); void _edje_entry_cursor_geometry_get(Edje_Real_Part *rp, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch); Modified: trunk/edje/src/lib/edje_util.c =================================================================== --- trunk/edje/src/lib/edje_util.c 2008-11-18 06:56:31 UTC (rev 37699) +++ trunk/edje/src/lib/edje_util.c 2008-11-18 08:45:27 UTC (rev 37700) @@ -947,6 +947,42 @@ return NULL; } +/** sets the selection to be none + * @param obj A valid Evas_Object handle + * @param part The part name + */ +EAPI void +edje_object_part_text_select_none(const Evas_Object *obj, const char *part) +{ + Edje *ed; + Edje_Real_Part *rp; + + ed = _edje_fetch(obj); + if ((!ed) || (!part)) return; + rp = _edje_real_part_recursive_get(ed, (char *)part); + if (!rp) return; + if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) + _edje_entry_select_none(rp); +} + +/** sets the selection to be everything + * @param obj A valid Evas_Object handle + * @param part The part name + */ +EAPI void +edje_object_part_text_select_all(const Evas_Object *obj, const char *part) +{ + Edje *ed; + Edje_Real_Part *rp; + + ed = _edje_fetch(obj); + if ((!ed) || (!part)) return; + rp = _edje_real_part_recursive_get(ed, (char *)part); + if (!rp) return; + if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) + _edje_entry_select_all(rp); +} + /** Inserts the text for an object part just before the cursor position * @param obj A valid Evas Object handle * @param part The part name |
From: Enlightenment S. <no-...@en...> - 2008-11-19 02:14:58
|
Log: fix selection get Author: raster Date: 2008-11-18 18:14:50 -0800 (Tue, 18 Nov 2008) New Revision: 37703 Modified: trunk/edje/src/lib/edje_entry.c Modified: trunk/edje/src/lib/edje_entry.c =================================================================== --- trunk/edje/src/lib/edje_entry.c 2008-11-18 10:11:57 UTC (rev 37702) +++ trunk/edje/src/lib/edje_entry.c 2008-11-19 02:14:50 UTC (rev 37703) @@ -226,6 +226,11 @@ en->sel_end = evas_object_textblock_cursor_new(o); evas_textblock_cursor_copy(c, en->sel_start); en->have_selection = 0; + if (en->selection) + { + free(en->selection); + en->selection = NULL; + } } static void @@ -233,6 +238,11 @@ { if (en->have_selection) return; en->have_selection = 1; + if (en->selection) + { + free(en->selection); + en->selection = NULL; + } _edje_emit(en->rp->edje, "selection,start", en->rp->part->name); } @@ -243,6 +253,11 @@ _sel_enable(c, o, en); if (!evas_textblock_cursor_compare(c, en->sel_end)) return; evas_textblock_cursor_copy(c, en->sel_end); + if (en->selection) + { + free(en->selection); + en->selection = NULL; + } _edje_emit(en->rp->edje, "selection,changed", en->rp->part->name); } |
From: Enlightenment S. <no-...@en...> - 2008-11-19 06:22:21
|
Log: middle mouse does a paste request now.. unix stylin' Author: raster Date: 2008-11-18 22:22:12 -0800 (Tue, 18 Nov 2008) New Revision: 37705 Modified: trunk/edje/src/lib/edje_entry.c Modified: trunk/edje/src/lib/edje_entry.c =================================================================== --- trunk/edje/src/lib/edje_entry.c 2008-11-19 06:20:55 UTC (rev 37704) +++ trunk/edje/src/lib/edje_entry.c 2008-11-19 06:22:12 UTC (rev 37705) @@ -1051,12 +1051,17 @@ Evas_Coord x, y, w, h; Evas_Bool multiline; Evas_Textblock_Cursor *tc; - if (ev->button != 1) return; if (!rp) return; en = rp->entry_data; if ((!en) || (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) || (rp->part->entry_mode < EDJE_ENTRY_EDIT_MODE_SELECTABLE)) return; + if (ev->button == 2) + { + _edje_emit(rp->edje, "entry,paste,request", rp->part->name); + return; + } + if (ev->button != 2) return; // double click -> select word // triple click -> select line tc = evas_object_textblock_cursor_new(rp->object); |
From: Enlightenment S. <no-...@en...> - 2008-11-28 13:54:26
|
Log: bad edje! leak! fix fix! Author: raster Date: 2008-11-28 05:54:21 -0800 (Fri, 28 Nov 2008) New Revision: 37840 Modified: trunk/edje/src/lib/edje_load.c Modified: trunk/edje/src/lib/edje_load.c =================================================================== --- trunk/edje/src/lib/edje_load.c 2008-11-28 11:17:40 UTC (rev 37839) +++ trunk/edje/src/lib/edje_load.c 2008-11-28 13:54:21 UTC (rev 37840) @@ -163,6 +163,7 @@ if (edje_match_collection_dir_exec(patterns, glob)) { edje_match_patterns_free(patterns); + _edje_cache_file_unref(edf); return 1; } edje_match_patterns_free(patterns); |
From: Enlightenment S. <no-...@en...> - 2009-01-27 06:17:40
|
Log: changed signal on backspace Author: raster Date: 2009-01-26 22:17:35 -0800 (Mon, 26 Jan 2009) New Revision: 38807 Modified: trunk/edje/src/lib/edje_entry.c Modified: trunk/edje/src/lib/edje_entry.c =================================================================== --- trunk/edje/src/lib/edje_entry.c 2009-01-27 05:11:16 UTC (rev 38806) +++ trunk/edje/src/lib/edje_entry.c 2009-01-27 06:17:35 UTC (rev 38807) @@ -839,6 +839,7 @@ } _sel_clear(en->cursor, rp->object, en); _curs_update_from_curs(en->cursor, rp->object, en); + _edje_emit(ed, "entry,changed", rp->part->name); _edje_emit(ed, "entry,key,backspace", rp->part->name); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; } |
From: Enlightenment S. <no-...@en...> - 2009-02-03 05:08:06
|
Log: allow individual objects to have differing scaling factors (object scale overrides edje global scale) Author: raster Date: 2009-02-02 21:07:58 -0800 (Mon, 02 Feb 2009) New Revision: 38908 Modified: trunk/edje/src/lib/Edje.h trunk/edje/src/lib/edje_calc.c trunk/edje/src/lib/edje_private.h trunk/edje/src/lib/edje_text.c trunk/edje/src/lib/edje_util.c Modified: trunk/edje/src/lib/Edje.h =================================================================== --- trunk/edje/src/lib/Edje.h 2009-02-02 18:30:41 UTC (rev 38907) +++ trunk/edje/src/lib/Edje.h 2009-02-03 05:07:58 UTC (rev 38908) @@ -181,7 +181,9 @@ EAPI const char *edje_fontset_append_get (void); EAPI void edje_scale_set (double scale); EAPI double edje_scale_get (void); - + EAPI void edje_object_scale_set (Evas_Object *obj, double scale); + EAPI double edje_object_scale_get (const Evas_Object *obj); + /* edje_load.c */ EAPI Eina_List *edje_file_collection_list (const char *file); EAPI void edje_file_collection_list_free (Eina_List *lst); Modified: trunk/edje/src/lib/edje_calc.c =================================================================== --- trunk/edje/src/lib/edje_calc.c 2009-02-02 18:30:41 UTC (rev 38907) +++ trunk/edje/src/lib/edje_calc.c 2009-02-03 05:07:58 UTC (rev 38908) @@ -270,13 +270,16 @@ int flags) { int minw = 0, minh = 0, maxw = 0, maxh = 0; + double sc; flags = FLAG_XY; + sc = ed->scale; + if (sc == 0.0) sc = _edje_scale; // if (flags & FLAG_X) { minw = desc->min.w; - if (ep->part->scale) minw = (int)(((double)minw) * _edje_scale); + if (ep->part->scale) minw = (int)(((double)minw) * sc); if (ep->swallow_params.min.w > desc->min.w) minw = ep->swallow_params.min.w; @@ -287,7 +290,7 @@ maxw = desc->max.w; if (maxw > 0) { - if (ep->part->scale) maxw = (int)(((double)maxw) * _edje_scale); + if (ep->part->scale) maxw = (int)(((double)maxw) * sc); if (maxw < 1) maxw = 1; } } @@ -300,7 +303,7 @@ maxw = desc->max.w; if (maxw > 0) { - if (ep->part->scale) maxw = (int)(((double)maxw) * _edje_scale); + if (ep->part->scale) maxw = (int)(((double)maxw) * sc); if (maxw < 1) maxw = 1; } if (ep->swallow_params.max.w < maxw) @@ -315,7 +318,7 @@ // if (flags & FLAG_Y) { minh = desc->min.h; - if (ep->part->scale) minh = (int)(((double)minh) * _edje_scale); + if (ep->part->scale) minh = (int)(((double)minh) * sc); if (ep->swallow_params.min.h > desc->min.h) minh = ep->swallow_params.min.h; @@ -326,7 +329,7 @@ maxh = desc->max.h; if (maxh > 0) { - if (ep->part->scale) maxh = (int)(((double)maxh) * _edje_scale); + if (ep->part->scale) maxh = (int)(((double)maxh) * sc); if (maxh < 1) maxh = 1; } } @@ -339,7 +342,7 @@ maxh = desc->max.h; if (maxh > 0) { - if (ep->part->scale) maxh = (int)(((double)maxh) * _edje_scale); + if (ep->part->scale) maxh = (int)(((double)maxh) * sc); if (maxh < 1) maxh = 1; } if (ep->swallow_params.max.h < maxh) @@ -647,7 +650,7 @@ } if (ep->part->scale) - evas_object_scale_set(ep->object, _edje_scale); + evas_object_scale_set(ep->object, sc); if (stl) { @@ -786,7 +789,7 @@ } } if (ep->part->scale) - evas_object_scale_set(ep->object, _edje_scale); + evas_object_scale_set(ep->object, sc); if (inlined_font) evas_object_text_font_source_set(ep->object, ed->path); else evas_object_text_font_source_set(ep->object, NULL); Modified: trunk/edje/src/lib/edje_private.h =================================================================== --- trunk/edje/src/lib/edje_private.h 2009-02-02 18:30:41 UTC (rev 38907) +++ trunk/edje/src/lib/edje_private.h 2009-02-03 05:07:58 UTC (rev 38908) @@ -684,6 +684,7 @@ int block; int load_error; int freeze; + double scale; struct { void (*func) (void *data, Evas_Object *obj, const char *part); Modified: trunk/edje/src/lib/edje_text.c =================================================================== --- trunk/edje/src/lib/edje_text.c 2009-02-02 18:30:41 UTC (rev 38907) +++ trunk/edje/src/lib/edje_text.c 2009-02-03 05:07:58 UTC (rev 38908) @@ -147,11 +147,15 @@ char *buf; int c1 = -1, c2 = -1, loop = 0, extra; size_t orig_len; + double sc; + sc = ed->scale; + if (sc == 0.0) sc = _edje_scale; + *free_text = 0; if (sw <= 1) return ""; - if (ep->part->scale) evas_object_scale_set(ep->object, _edje_scale); + if (ep->part->scale) evas_object_scale_set(ep->object, sc); evas_object_text_font_set(ep->object, font, size); evas_object_text_text_set(ep->object, text); @@ -331,8 +335,10 @@ Evas_Coord tw, th; Evas_Coord sw, sh; int inlined_font = 0, free_text = 0; + double sc; - + sc = ed->scale; + if (sc == 0.0) sc = _edje_scale; text = chosen_desc->text.text; font = _edje_text_class_font_get(ed, chosen_desc, &size, &sfont); @@ -413,7 +419,7 @@ if (inlined_font) evas_object_text_font_source_set(ep->object, ed->path); else evas_object_text_font_source_set(ep->object, NULL); - if (ep->part->scale) evas_object_scale_set(ep->object, _edje_scale); + if (ep->part->scale) evas_object_scale_set(ep->object, sc); evas_object_text_font_set(ep->object, font, size); evas_object_text_text_set(ep->object, text); part_get_geometry(ep, &tw, &th); @@ -430,7 +436,7 @@ if (inlined_font) evas_object_text_font_source_set(ep->object, ed->path); else evas_object_text_font_source_set(ep->object, NULL); - if (ep->part->scale) evas_object_scale_set(ep->object, _edje_scale); + if (ep->part->scale) evas_object_scale_set(ep->object, sc); evas_object_text_font_set(ep->object, font, size); part_get_geometry(ep, &tw, &th); if ((size > 0) && (tw == 0)) break; @@ -449,7 +455,7 @@ if (inlined_font) evas_object_text_font_source_set(ep->object, ed->path); else evas_object_text_font_source_set(ep->object, NULL); - if (ep->part->scale) evas_object_scale_set(ep->object, _edje_scale); + if (ep->part->scale) evas_object_scale_set(ep->object, sc); evas_object_text_font_set(ep->object, font, size); part_get_geometry(ep, &tw, &th); if ((size > 0) && (tw == 0)) break; @@ -467,7 +473,7 @@ if (inlined_font) evas_object_text_font_source_set(ep->object, ed->path); else evas_object_text_font_source_set(ep->object, NULL); - if (ep->part->scale) evas_object_scale_set(ep->object, _edje_scale); + if (ep->part->scale) evas_object_scale_set(ep->object, sc); evas_object_text_font_set(ep->object, font, size); evas_object_text_text_set(ep->object, text); part_get_geometry(ep, &tw, &th); @@ -488,7 +494,7 @@ if (inlined_font) evas_object_text_font_source_set(ep->object, ed->path); else evas_object_text_font_source_set(ep->object, NULL); - if (ep->part->scale) evas_object_scale_set(ep->object, _edje_scale); + if (ep->part->scale) evas_object_scale_set(ep->object, sc); evas_object_text_font_set(ep->object, font, size); part_get_geometry(ep, &tw, &th); if ((size > 0) && (th == 0)) break; @@ -499,7 +505,7 @@ { int current; - if (ep->part->scale) evas_object_scale_set(ep->object, _edje_scale); + if (ep->part->scale) evas_object_scale_set(ep->object, sc); evas_object_text_font_set(ep->object, font, 10); part_get_geometry(ep, &tw, &th); @@ -524,7 +530,7 @@ { current = (top + bottom) / 2; - if (ep->part->scale) evas_object_scale_set(ep->object, _edje_scale); + if (ep->part->scale) evas_object_scale_set(ep->object, sc); evas_object_text_font_set(ep->object, font, current); part_get_geometry(ep, &tw, &th); @@ -538,7 +544,7 @@ { current++; - if (ep->part->scale) evas_object_scale_set(ep->object, _edje_scale); + if (ep->part->scale) evas_object_scale_set(ep->object, sc); evas_object_text_font_set(ep->object, font, current); part_get_geometry(ep, &tw, &th); } while (th <= sh); @@ -570,7 +576,7 @@ if (inlined_font) evas_object_text_font_source_set(ep->object, ed->path); else evas_object_text_font_source_set(ep->object, NULL); - if (ep->part->scale) evas_object_scale_set(ep->object, _edje_scale); + if (ep->part->scale) evas_object_scale_set(ep->object, sc); evas_object_text_font_set(ep->object, font, size); evas_object_text_text_set(ep->object, text); part_get_geometry(ep, &tw, &th); Modified: trunk/edje/src/lib/edje_util.c =================================================================== --- trunk/edje/src/lib/edje_util.c 2009-02-02 18:30:41 UTC (rev 38907) +++ trunk/edje/src/lib/edje_util.c 2009-02-03 05:07:58 UTC (rev 38908) @@ -163,6 +163,28 @@ return _edje_scale; } +EAPI void +edje_object_scale_set(Evas_Object *obj, double scale) +{ + Edje *ed; + + ed = _edje_fetch(obj); + if (!ed) return; + if (ed->scale == scale) return; + ed->scale = scale; + edje_object_calc_force(obj); +} + +EAPI double +edje_object_scale_get(const Evas_Object *obj) +{ + Edje *ed; + + ed = _edje_fetch(obj); + if (!ed) return 0.0; + return ed->scale; +} + /* FIXDOC: Verify/Expand */ /** Get Edje object data * @param obj A valid Evas_Object handle |
From: Enlightenment S. <no-...@en...> - 2009-02-11 13:13:51
|
Log: fix some min size calc and aspect calc issues. Author: raster Date: 2009-02-11 03:48:15 -0800 (Wed, 11 Feb 2009) New Revision: 38994 Modified: trunk/edje/src/lib/edje_calc.c Modified: trunk/edje/src/lib/edje_calc.c =================================================================== --- trunk/edje/src/lib/edje_calc.c 2009-02-10 15:53:17 UTC (rev 38993) +++ trunk/edje/src/lib/edje_calc.c 2009-02-11 11:48:15 UTC (rev 38994) @@ -391,188 +391,192 @@ } /* aspect */ - if ((params->h > 0) && - (((flags | ep->calculated) & FLAG_XY) == FLAG_XY)) + if (((flags | ep->calculated) & FLAG_XY) == FLAG_XY) { - int apref; + int apref = -10; double aspect, amax, amin; double new_w = 0, new_h = 0, want_x, want_y, want_w, want_h; - want_x = params->x; - want_w = new_w = params->w; - - want_y = params->y; - want_h = new_h = params->h; - - aspect = (double)params->w / (double)params->h; - apref = desc->aspect.prefer; - amax = desc->aspect.max; - amin = desc->aspect.min; - if ((ep->swallow_params.aspect.w > 0) && - (ep->swallow_params.aspect.h > 0)) - amin = amax = - (double)ep->swallow_params.aspect.w / - (double)ep->swallow_params.aspect.h; - if (ep->swallow_params.aspect.mode > EDJE_ASPECT_CONTROL_NONE) - { - switch (ep->swallow_params.aspect.mode) - { - case EDJE_ASPECT_CONTROL_NEITHER: - apref = EDJE_ASPECT_PREFER_NONE; - break; - case EDJE_ASPECT_CONTROL_HORIZONTAL: - apref = EDJE_ASPECT_PREFER_HORIZONTAL; - break; - case EDJE_ASPECT_CONTROL_VERTICAL: - apref = EDJE_ASPECT_PREFER_VERTICAL; - break; - case EDJE_ASPECT_CONTROL_BOTH: - apref = EDJE_ASPECT_PREFER_BOTH; - break; - default: - break; - } - } - - switch (apref) - { - case EDJE_ASPECT_PREFER_NONE: - /* keep botth dimensions in check */ - /* adjust for min aspect (width / height) */ - if ((amin > 0.0) && (aspect < amin)) - { - new_h = (params->w / amin); - new_w = (params->h * amin); - } - /* adjust for max aspect (width / height) */ - if ((amax > 0.0) && (aspect > amax)) - { - new_h = (params->w / amax); - new_w = (params->h * amax); - } - if ((amax > 0.0) && (new_w < params->w)) - { - new_w = params->w; - new_h = params->w / amax; - } - if ((amax > 0.0) && (new_h < params->h)) - { - new_w = params->h * amax; - new_h = params->h; - } - break; - /* prefer vertical size as determiner */ - case EDJE_ASPECT_PREFER_VERTICAL: - /* keep both dimensions in check */ - /* adjust for max aspect (width / height) */ - if ((amax > 0.0) && (aspect > amax)) - new_w = (params->h * amax); - /* adjust for min aspect (width / height) */ - if ((amin > 0.0) && (aspect < amin)) - new_w = (params->h * amin); - break; - /* prefer horizontal size as determiner */ - case EDJE_ASPECT_PREFER_HORIZONTAL: - /* keep both dimensions in check */ - /* adjust for max aspect (width / height) */ - if ((amax > 0.0) && (aspect > amax)) - new_h = (params->w / amax); - /* adjust for min aspect (width / height) */ - if ((amin > 0.0) && (aspect < amin)) - new_h = (params->w / amin); - break; - case EDJE_ASPECT_PREFER_BOTH: - /* keep both dimensions in check */ - /* adjust for max aspect (width / height) */ - if ((amax > 0.0) && (aspect > amax)) - { - new_w = (params->h * amax); - new_h = (params->w / amax); - } - /* adjust for min aspect (width / height) */ - if ((amin > 0.0) && (aspect < amin)) - { - new_w = (params->h * amin); - new_h = (params->w / amin); - } - break; - } - - if (!((amin > 0.0) && (amax > 0.0) && (apref == EDJE_ASPECT_PREFER_NONE))) - { - if ((maxw >= 0) && (new_w > maxw)) new_w = maxw; - if (new_w < minw) new_w = minw; - - if ((maxh >= 0) && (new_h > maxh)) new_h = maxh; - if (new_h < minh) new_h = minh; - } - - /* do real adjustment */ - if (apref == EDJE_ASPECT_PREFER_BOTH) - { - if (amin == 0.0) amin = amax; - if (amin != 0.0) - { - /* fix h and vary w */ - if (new_w > params->w) - { -// params->w = new_w; -// EXCEEDS BOUNDS in W - new_h = (params->w / amin); - new_w = params->w; - if (new_h > params->h) - { - new_h = params->h; - new_w = (params->h * amin); - } - } - /* fix w and vary h */ - else - { -// params->h = new_h; -// EXCEEDS BOUNDS in H - new_h = params->h; - new_w = (params->h * amin); - if (new_w > params->w) - { - new_h = (params->w / amin); - new_w = params->w; - } - } - params->w = new_w; - params->h = new_h; - } - } - else - { - if ((amin > 0.0) && (amax > 0.0) && (apref == EDJE_ASPECT_PREFER_NONE)) - { - params->w = new_w; - params->h = new_h; - } - else if ((params->h - new_h) > (params->w - new_w)) - { - if (params->h < new_h) - params->h = new_h; - else if (params->h > new_h) - params->h = new_h; - if (apref == EDJE_ASPECT_PREFER_VERTICAL) - params->w = new_w; - } - else - { - if (params->w < new_w) - params->w = new_w; - else if (params->w > new_w) - params->w = new_w; - if (apref == EDJE_ASPECT_PREFER_HORIZONTAL) - params->h = new_h; - } - } - params->x = want_x + ((want_w - params->w) * desc->align.x); - params->y = want_y + ((want_h - params->h) * desc->align.y); + if (params->h <= 0) aspect = 999999.0; + else aspect = (double)params->w / (double)params->h; + amax = desc->aspect.max; + amin = desc->aspect.min; + if ((ep->swallow_params.aspect.w > 0) && + (ep->swallow_params.aspect.h > 0)) + amin = amax = + (double)ep->swallow_params.aspect.w / + (double)ep->swallow_params.aspect.h; + want_x = params->x; + want_w = new_w = params->w; + + want_y = params->y; + want_h = new_h = params->h; + + if ((amin > 0.0) && (amax > 0.0)) + { + apref = desc->aspect.prefer; + if (ep->swallow_params.aspect.mode > EDJE_ASPECT_CONTROL_NONE) + { + switch (ep->swallow_params.aspect.mode) + { + case EDJE_ASPECT_CONTROL_NEITHER: + apref = EDJE_ASPECT_PREFER_NONE; + break; + case EDJE_ASPECT_CONTROL_HORIZONTAL: + apref = EDJE_ASPECT_PREFER_HORIZONTAL; + break; + case EDJE_ASPECT_CONTROL_VERTICAL: + apref = EDJE_ASPECT_PREFER_VERTICAL; + break; + case EDJE_ASPECT_CONTROL_BOTH: + apref = EDJE_ASPECT_PREFER_BOTH; + break; + default: + break; + } + } + switch (apref) + { + case EDJE_ASPECT_PREFER_NONE: + /* keep both dimensions in check */ + /* adjust for min aspect (width / height) */ + if ((amin > 0.0) && (aspect < amin)) + { + new_h = (params->w / amin); + new_w = (params->h * amin); + } + /* adjust for max aspect (width / height) */ + if ((amax > 0.0) && (aspect > amax)) + { + new_h = (params->w / amax); + new_w = (params->h * amax); + } + if ((amax > 0.0) && (new_w < params->w)) + { + new_w = params->w; + new_h = params->w / amax; + } + if ((amax > 0.0) && (new_h < params->h)) + { + new_w = params->h * amax; + new_h = params->h; + } + break; + /* prefer vertical size as determiner */ + case EDJE_ASPECT_PREFER_VERTICAL: + /* keep both dimensions in check */ + /* adjust for max aspect (width / height) */ + if ((amax > 0.0) && (aspect > amax)) + new_w = (params->h * amax); + /* adjust for min aspect (width / height) */ + if ((amin > 0.0) && (aspect < amin)) + new_w = (params->h * amin); + break; + /* prefer horizontal size as determiner */ + case EDJE_ASPECT_PREFER_HORIZONTAL: + /* keep both dimensions in check */ + /* adjust for max aspect (width / height) */ + if ((amax > 0.0) && (aspect > amax)) + new_h = (params->w / amax); + /* adjust for min aspect (width / height) */ + if ((amin > 0.0) && (aspect < amin)) + new_h = (params->w / amin); + break; + case EDJE_ASPECT_PREFER_BOTH: + /* keep both dimensions in check */ + /* adjust for max aspect (width / height) */ + if ((amax > 0.0) && (aspect > amax)) + { + new_w = (params->h * amax); + new_h = (params->w / amax); + } + /* adjust for min aspect (width / height) */ + if ((amin > 0.0) && (aspect < amin)) + { + new_w = (params->h * amin); + new_h = (params->w / amin); + } + break; + default: + break; + } + + if (!((amin > 0.0) && (amax > 0.0) && (apref == EDJE_ASPECT_PREFER_NONE))) + { + if ((maxw >= 0) && (new_w > maxw)) new_w = maxw; + if (new_w < minw) new_w = minw; + + if ((maxh >= 0) && (new_h > maxh)) new_h = maxh; + if (new_h < minh) new_h = minh; + } + + /* do real adjustment */ + if (apref == EDJE_ASPECT_PREFER_BOTH) + { + if (amin == 0.0) amin = amax; + if (amin != 0.0) + { + /* fix h and vary w */ + if (new_w > params->w) + { + // params->w = new_w; + // EXCEEDS BOUNDS in W + new_h = (params->w / amin); + new_w = params->w; + if (new_h > params->h) + { + new_h = params->h; + new_w = (params->h * amin); + } + } + /* fix w and vary h */ + else + { + // params->h = new_h; + // EXCEEDS BOUNDS in H + new_h = params->h; + new_w = (params->h * amin); + if (new_w > params->w) + { + new_h = (params->w / amin); + new_w = params->w; + } + } + params->w = new_w; + params->h = new_h; + } + } + } + if (apref != EDJE_ASPECT_PREFER_BOTH) + { + if ((amin > 0.0) && (amax > 0.0) && (apref == EDJE_ASPECT_PREFER_NONE)) + { + params->w = new_w; + params->h = new_h; + } + else if ((params->h - new_h) > (params->w - new_w)) + { + if (params->h < new_h) + params->h = new_h; + else if (params->h > new_h) + params->h = new_h; + if (apref == EDJE_ASPECT_PREFER_VERTICAL) + params->w = new_w; + } + else + { + if (params->w < new_w) + params->w = new_w; + else if (params->w > new_w) + params->w = new_w; + if (apref == EDJE_ASPECT_PREFER_HORIZONTAL) + params->h = new_h; + } + } + params->x = want_x + ((want_w - params->w) * desc->align.x); + params->y = want_y + ((want_h - params->h) * desc->align.y); } - + /* size step */ if (flags & FLAG_X) { |
From: Enlightenment S. <no-...@en...> - 2009-02-15 02:56:00
|
Log: fix copy & paste bug! Author: raster Date: 2009-02-14 18:55:56 -0800 (Sat, 14 Feb 2009) New Revision: 39022 Modified: trunk/edje/src/lib/edje_entry.c Modified: trunk/edje/src/lib/edje_entry.c =================================================================== --- trunk/edje/src/lib/edje_entry.c 2009-02-15 02:53:56 UTC (rev 39021) +++ trunk/edje/src/lib/edje_entry.c 2009-02-15 02:55:56 UTC (rev 39022) @@ -224,7 +224,7 @@ en->sel_start = evas_object_textblock_cursor_new(o); evas_textblock_cursor_copy(c, en->sel_start); en->sel_end = evas_object_textblock_cursor_new(o); - evas_textblock_cursor_copy(c, en->sel_start); + evas_textblock_cursor_copy(c, en->sel_end); en->have_selection = 0; if (en->selection) { |
From: Enlightenment S. <no-...@en...> - 2009-03-20 15:07:43
|
Log: add more util calls for enty manipulation Author: raster Date: 2009-03-20 08:07:39 -0700 (Fri, 20 Mar 2009) New Revision: 39600 Modified: trunk/edje/src/lib/Edje.h trunk/edje/src/lib/edje_entry.c trunk/edje/src/lib/edje_private.h trunk/edje/src/lib/edje_util.c Modified: trunk/edje/src/lib/Edje.h =================================================================== --- trunk/edje/src/lib/Edje.h 2009-03-20 06:43:44 UTC (rev 39599) +++ trunk/edje/src/lib/Edje.h 2009-03-20 15:07:39 UTC (rev 39600) @@ -256,6 +256,7 @@ EAPI const Eina_List *edje_object_part_text_anchor_geometry_get(const Evas_Object *obj, const char *part, const char *anchor); EAPI void edje_object_part_text_cursor_geometry_get(const Evas_Object *obj, const char *part, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h); EAPI void edje_object_part_text_select_allow_set(const Evas_Object *obj, const char *part, Evas_Bool allow); + EAPI void edje_object_part_text_select_abort(const Evas_Object *obj, const char *part); EAPI void edje_object_part_swallow (Evas_Object *obj, const char *part, Evas_Object *obj_swallow); EAPI void edje_object_part_unswallow (Evas_Object *obj, Evas_Object *obj_swallow); Modified: trunk/edje/src/lib/edje_entry.c =================================================================== --- trunk/edje/src/lib/edje_entry.c 2009-03-20 06:43:44 UTC (rev 39599) +++ trunk/edje/src/lib/edje_entry.c 2009-03-20 15:07:39 UTC (rev 39600) @@ -1482,3 +1482,14 @@ Entry *en = rp->entry_data; en->select_allow = allow; } + +void +_edje_entry_select_abort(Edje_Real_Part *rp) +{ + Entry *en = rp->entry_data; + if (en->selecting) + { + en->selecting = 0; + _edje_entry_real_part_configure(rp); + } +} Modified: trunk/edje/src/lib/edje_private.h =================================================================== --- trunk/edje/src/lib/edje_private.h 2009-03-20 06:43:44 UTC (rev 39599) +++ trunk/edje/src/lib/edje_private.h 2009-03-20 15:07:39 UTC (rev 39600) @@ -1307,5 +1307,6 @@ const Eina_List *_edje_entry_anchors_list(Edje_Real_Part *rp); void _edje_entry_cursor_geometry_get(Edje_Real_Part *rp, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch); void _edje_entry_select_allow_set(Edje_Real_Part *rp, Evas_Bool allow); +void _edje_entry_select_abort(Edje_Real_Part *rp); #endif Modified: trunk/edje/src/lib/edje_util.c =================================================================== --- trunk/edje/src/lib/edje_util.c 2009-03-20 06:43:44 UTC (rev 39599) +++ trunk/edje/src/lib/edje_util.c 2009-03-20 15:07:39 UTC (rev 39600) @@ -1101,7 +1101,7 @@ return; } -/** XX +/** Enables selection if the entyr is an EXPLICIT selection mode type * @param obj A valid Evas_Object handle * @param part The part name */ @@ -1119,6 +1119,24 @@ _edje_entry_select_allow_set(rp, allow); } +/** Aborts any selection action on a part + * @param obj A valid Evas_Object handle + * @param part The part name + */ +EAPI void +edje_object_part_text_select_abort(const Evas_Object *obj, const char *part) +{ + Edje *ed; + Edje_Real_Part *rp; + + ed = _edje_fetch(obj); + if ((!ed) || (!part)) return; + rp = _edje_real_part_recursive_get(ed, (char *)part); + if (!rp) return; + if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) + _edje_entry_select_abort(rp); +} + /** Swallows an object into the edje * @param obj A valid Evas_Object handle * @param part The part name |
From: Enlightenment S. <no-...@en...> - 2009-03-22 14:19:05
|
Log: edje explicit selection mode is saner now. done - for now. workable. Author: raster Date: 2009-03-22 06:50:53 -0700 (Sun, 22 Mar 2009) New Revision: 39628 Modified: trunk/edje/src/lib/edje_entry.c Modified: trunk/edje/src/lib/edje_entry.c =================================================================== --- trunk/edje/src/lib/edje_entry.c 2009-03-22 13:40:28 UTC (rev 39627) +++ trunk/edje/src/lib/edje_entry.c 2009-03-22 13:50:53 UTC (rev 39628) @@ -46,6 +46,9 @@ Evas_Bool selecting : 1; Evas_Bool have_selection : 1; Evas_Bool select_allow : 1; + Evas_Bool select_mod_start : 1; + Evas_Bool select_mod_end : 1; + Evas_Bool had_sel : 1; }; struct _Sel @@ -263,8 +266,24 @@ } static void +_sel_preextend(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en) +{ + if (!en->sel_end) return; + _sel_enable(c, o, en); + if (!evas_textblock_cursor_compare(c, en->sel_start)) return; + evas_textblock_cursor_copy(c, en->sel_start); + if (en->selection) + { + free(en->selection); + en->selection = NULL; + } + _edje_emit(en->rp->edje, "selection,changed", en->rp->part->name); +} + +static void _sel_clear(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en) { + en->had_sel = 0; if (en->sel_start) { evas_textblock_cursor_free(en->sel_start); @@ -371,6 +390,7 @@ evas_object_move(sel->obj_fg, x + r->x, y + r->y); evas_object_resize(sel->obj_fg, r->w, r->h); } + *(&(sel->rect)) = *r; range = eina_list_remove_list(range, range); free(r); } @@ -394,7 +414,12 @@ char *buf, *n; int len; int ignored; - + Entry *en; + + en = rp->entry_data; + if ((rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_EXPLICIT) && + (en->select_allow)) + return; ignored = rp->part->ignore_flags & ev->event_flags; if ((!ev->event_flags) || (!ignored)) { @@ -421,8 +446,13 @@ char *buf, *n; int len; int ignored; - + Entry *en; + + en = rp->entry_data; ignored = rp->part->ignore_flags & ev->event_flags; + if ((rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_EXPLICIT) && + (en->select_allow)) + return; if ((!ev->event_flags) || (!ignored)) { n = an->name; @@ -443,7 +473,12 @@ char *buf, *n; int len; int ignored; - + Entry *en; + + en = rp->entry_data; + if ((rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_EXPLICIT) && + (en->select_allow)) + return; ignored = rp->part->ignore_flags & ev->event_flags; if ((!ev->event_flags) || (!ignored)) { @@ -1066,6 +1101,8 @@ return; } if (ev->button != 1) return; + en->select_mod_start = 0; + en->select_mod_end = 0; if (rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_DEFAULT) dosel = 1; else if (rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_EXPLICIT) @@ -1105,7 +1142,47 @@ if ((en->have_selection) && (rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_EXPLICIT)) { - printf("have selection.. do nothing\n"); + Eina_List *first, *last; + double sc; + + first = en->sel; + last = eina_list_last(en->sel); + if (first && last) + { + Evas_Textblock_Rectangle *r1, *r2; + Evas_Coord d, d1, d2; + + r1 = first->data; + r2 = last->data; + d = r1->x - en->cx; + d1 = d * d; + d = (r1->y + (r1->h / 2)) - en->cy; + d1 += d * d; + d = r2->x + r2->w - 1 - en->cx; + d2 = d * d; + d = (r2->y + (r2->h / 2)) - en->cy; + d2 += d * d; + sc = rp->edje->scale; + if (sc == 0.0) sc = _edje_scale; + d = (Evas_Coord)(20.0 * sc); // FIXME: maxing number! + d = d * d; + if (d1 < d2) + { + if (d1 <= d) + { + en->select_mod_start = 1; + en->selecting = 1; + } + } + else + { + if (d2 <= d) + { + en->select_mod_end = 1; + en->selecting = 1; + } + } + } } else { @@ -1156,11 +1233,27 @@ if (rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_EXPLICIT) { if (en->select_allow) - evas_textblock_cursor_copy(en->cursor, en->sel_end); + { + if (en->had_sel) + { + if (en->select_mod_end) + _sel_extend(en->cursor, rp->object, en); + else if (en->select_mod_start) + _sel_preextend(en->cursor, rp->object, en); + } + else + _sel_extend(en->cursor, rp->object, en); +// evas_textblock_cursor_copy(en->cursor, en->sel_end); + } } else evas_textblock_cursor_copy(en->cursor, en->sel_end); - en->selecting = 0; + if (en->selecting) + { + if (en->have_selection) + en->had_sel = 1; + en->selecting = 0; + } if (evas_textblock_cursor_compare(tc, en->cursor)) _edje_emit(rp->edje, "cursor,changed", rp->part->name); evas_textblock_cursor_free(tc); @@ -1200,10 +1293,20 @@ else _curs_lin_end(en->cursor, rp->object, en); } - if ((rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_EXPLICIT) && - (en->select_allow)) + if (rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_EXPLICIT) { - _sel_extend(en->cursor, rp->object, en); + if (en->select_allow) + { + if (en->had_sel) + { + if (en->select_mod_end) + _sel_extend(en->cursor, rp->object, en); + else if (en->select_mod_start) + _sel_preextend(en->cursor, rp->object, en); + } + else + _sel_extend(en->cursor, rp->object, en); + } } else { |
From: Enlightenment S. <no-...@en...> - 2009-04-01 09:11:54
|
Log: tentative change... it seems in rare conditions some programs end up doubled and the stop prog doesnt clean out all instances - leaving 1 or more excess instances to run. this should fix that. Author: raster Date: 2009-04-01 02:11:48 -0700 (Wed, 01 Apr 2009) New Revision: 39827 Modified: trunk/edje/src/lib/edje_program.c Modified: trunk/edje/src/lib/edje_program.c =================================================================== --- trunk/edje/src/lib/edje_program.c 2009-04-01 08:28:21 UTC (rev 39826) +++ trunk/edje/src/lib/edje_program.c 2009-04-01 09:11:48 UTC (rev 39827) @@ -633,7 +633,7 @@ if (pt->id == runp->program->id) { _edje_program_end(ed, runp); - goto done; +// goto done; } } EINA_LIST_FOREACH(ed->pending_actions, ll, pp) @@ -643,7 +643,7 @@ ed->pending_actions = eina_list_remove(ed->pending_actions, pp); ecore_timer_del(pp->timer); free(pp); - goto done; +// goto done; } } done: |
From: Enlightenment S. <no-...@en...> - 2009-04-23 12:42:58
|
Log: fix calc - do not reset calc_only flag! it wanst set by the calc_do! Author: raster Date: 2009-04-23 05:42:53 -0700 (Thu, 23 Apr 2009) New Revision: 40326 Modified: trunk/edje/src/lib/edje_calc.c trunk/edje/src/lib/edje_entry.c Modified: trunk/edje/src/lib/edje_calc.c =================================================================== --- trunk/edje/src/lib/edje_calc.c 2009-04-23 12:32:06 UTC (rev 40325) +++ trunk/edje/src/lib/edje_calc.c 2009-04-23 12:42:53 UTC (rev 40326) @@ -180,7 +180,6 @@ _edje_part_recalc(ed, ep, (~ep->calculated) & FLAG_XY); } if (!ed->calc_only) ed->recalc = 0; - ed->calc_only = 0; } int @@ -690,11 +689,11 @@ evas_object_textblock_style_insets_get(ep->object, &ins_l, &ins_r, &ins_t, &ins_b); mw = ins_l + tw + ins_r; mh = ins_t + th + ins_b; - if (chosen_desc->text.min_x) +// if (chosen_desc->text.min_x) { if (mw > minw) minw = mw; } - if (chosen_desc->text.min_y) +// if (chosen_desc->text.min_y) { if (mh > minh) minh = mh; } @@ -882,7 +881,6 @@ free(sfont); params->text.size = size; } - /* rememebr what our size is BEFORE we go limit it */ params->req.x = params->x; params->req.y = params->y; Modified: trunk/edje/src/lib/edje_entry.c =================================================================== --- trunk/edje/src/lib/edje_entry.c 2009-04-23 12:32:06 UTC (rev 40325) +++ trunk/edje/src/lib/edje_entry.c 2009-04-23 12:42:53 UTC (rev 40326) @@ -1029,6 +1029,8 @@ _curs_update_from_curs(en->cursor, rp->object, en); _anchors_get(en->cursor, rp->object, en); _edje_emit(ed, "entry,changed", rp->part->name); + _edje_emit(ed, "cursor,changed", rp->part->name); + cursor_changed = 1; ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; } _edje_emit(ed, "entry,key,enter", rp->part->name); @@ -1091,6 +1093,7 @@ Evas_Textblock_Cursor *tc; Evas_Bool dosel = 0; if (!rp) return; + if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return; en = rp->entry_data; if ((!en) || (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) || (rp->part->entry_mode < EDJE_ENTRY_EDIT_MODE_SELECTABLE)) @@ -1209,6 +1212,7 @@ Evas_Bool dosel = 0; if (ev->button != 1) return; if (!rp) return; + if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return; en = rp->entry_data; if ((!en) || (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) || (rp->part->entry_mode < EDJE_ENTRY_EDIT_MODE_SELECTABLE)) |
From: Enlightenment S. <no-...@en...> - 2009-04-27 02:41:44
|
Log: fix corner case with edje - where u check for existens of parts in a edje but never use a single object from it. Author: raster Date: 2009-04-26 19:41:33 -0700 (Sun, 26 Apr 2009) New Revision: 40410 Modified: trunk/edje/src/lib/edje_cache.c Modified: trunk/edje/src/lib/edje_cache.c =================================================================== --- trunk/edje/src/lib/edje_cache.c 2009-04-27 02:41:27 UTC (rev 40409) +++ trunk/edje/src/lib/edje_cache.c 2009-04-27 02:41:33 UTC (rev 40410) @@ -222,11 +222,11 @@ return edf; } + if (!coll) return edf; + if (!edf->collection_hash) edf->collection_hash = eina_hash_string_small_new(NULL); - if (!coll) return edf; - edc = eina_hash_find(edf->collection_hash, coll); if (edc) { @@ -321,6 +321,11 @@ } if (edc_ret) *edc_ret = edc; + if (eina_hash_population(edf->collection_hash) == 0) + { + eina_hash_free(edf->collection_hash); + edf->collection_hash = NULL; + } return edf; } @@ -360,7 +365,7 @@ edc->references--; if (edc->references != 0) return; eina_hash_del(edf->collection_hash, edc->part, edc); - if (!eina_hash_population(edf->collection_hash)) + if (eina_hash_population(edf->collection_hash) == 0) { eina_hash_free(edf->collection_hash); edf->collection_hash = NULL; |
From: Enlightenment S. <no-...@en...> - 2009-05-11 13:10:44
|
Log: comments - man is that struct big! Author: raster Date: 2009-05-11 06:10:38 -0700 (Mon, 11 May 2009) New Revision: 40589 Modified: trunk/edje/src/lib/edje_private.h Modified: trunk/edje/src/lib/edje_private.h =================================================================== --- trunk/edje/src/lib/edje_private.h 2009-05-11 13:10:19 UTC (rev 40588) +++ trunk/edje/src/lib/edje_private.h 2009-05-11 13:10:38 UTC (rev 40589) @@ -723,78 +723,79 @@ struct _Edje_Real_Part { - Edje *edje; - Evas_Object *object; - Eina_List *extra_objects; - Evas_Object *swallowed_object; - Eina_List *items; - void *entry_data; - Evas_Object *cursorbg_object; - Evas_Object *cursorfg_object; - // FIXME: add selection objects - Edje_Part *part; - int x, y, w, h; - Edje_Rectangle req; - Edje_Position offset; + Edje *edje; // 4 + Edje_Part *part; // 4 + Evas_Object *object; // 4 + Eina_List *extra_objects; // 4 + Evas_Object *swallowed_object; // 4 // FIXME: move with swallow_params data + Eina_List *items; // 4 //FIXME: only if table/box + void *entry_data; // 4 // FIXME: move to entry section + Evas_Object *cursorbg_object; // 4 // FIXME: move to entry section + Evas_Object *cursorfg_object; // 4 // FIXME: move to entry section + int x, y, w, h; // 16 + Edje_Rectangle req; // 16 + Edje_Position offset; // 8 // FIXME: move to text section struct { - Edje_Size min, max; - Edje_Aspect aspect; - } swallow_params; + Edje_Size min, max; // 16 + Edje_Aspect aspect; // 12 + } swallow_params; // 28 // FIXME: only if type SWALLOW struct { - double x, y; - Edje_Position_Scale val, size, step, page; + double x, y; // 16 + Edje_Position_Scale val, size, step, page; // 64 struct { - unsigned int count; - int x, y; + unsigned int count; // 4 + int x, y; // 8 } down; struct { - int x, y; + int x, y; // 8 } tmp; - unsigned char need_reset : 1; - } drag; + unsigned char need_reset : 1; // 4 + } drag; // 104 // FIME: make drag pointer to struct optional struct { - Edje_Real_Part *source; - Edje_Real_Part *text_source; - const char *text; - const char *font; - const char *style; - int size; + Edje_Real_Part *source; // 4 + Edje_Real_Part *text_source; // 4 + const char *text; // 4 + const char *font; // 4 text only + const char *style; // 4 text only + int size; // 4 text only struct { - double in_w, in_h; - int in_size; - const char *in_str; - const char *out_str; - int out_size; - double align_x, align_y; - double elipsis; - int fit_x, fit_y; - } cache; - } text; + double in_w, in_h; // 16 text only + int in_size; // 4 text only + const char *in_str; // 4 text only + const char *out_str; // 4 text only + int out_size; // 4 text only + double align_x, align_y; // 16 text only + double elipsis; // 8 text only + int fit_x, fit_y; // 8 text only + } cache; // 64 + } text; // 86 // FIXME make text a potiner to struct and alloc at end + // if part type is TEXT move common members textblock + + // text to front and have smaller struct for textblock - double description_pos; - Edje_Part_Description *chosen_description; + double description_pos; // 8 + Edje_Part_Description *chosen_description; // 4 struct { - Edje_Part_Description *description; - Edje_Real_Part *rel1_to_x; - Edje_Real_Part *rel1_to_y; - Edje_Real_Part *rel2_to_x; - Edje_Real_Part *rel2_to_y; - } param1, param2, custom; + Edje_Part_Description *description; // 4 + Edje_Real_Part *rel1_to_x; // 4 + Edje_Real_Part *rel1_to_y; // 4 + Edje_Real_Part *rel2_to_x; // 4 + Edje_Real_Part *rel2_to_y; // 4 + } param1, param2, custom; // 60 // FIXME: custom should be alloced on demand - 20-- - Edje_Real_Part *confine_to; - Edje_Real_Part *clip_to; + Edje_Real_Part *confine_to; // 4 // fixme - make part of drag + Edje_Real_Part *clip_to; // 4 - Edje_Running_Program *program; - Edje_Real_Part *events_to; + Edje_Running_Program *program; // 4 + Edje_Real_Part *events_to; // 4 - int clicked_button; - int gradient_id; + int clicked_button; // 4 + int gradient_id; // 4 - unsigned char calculated; - unsigned char calculating; + unsigned char calculated; // 1 + unsigned char calculating; // 1 - unsigned char still_in : 1; -}; + unsigned char still_in : 1; // 2 +}; // 394 struct _Edje_Running_Program { |
From: Enlightenment S. <no-...@en...> - 2009-06-03 13:17:16
|
Log: mirko - thanks. spotted a crahs when magic debug is disabled Author: raster Date: 2009-06-03 06:17:06 -0700 (Wed, 03 Jun 2009) New Revision: 40875 Modified: trunk/edje/src/lib/edje_calc.c Modified: trunk/edje/src/lib/edje_calc.c =================================================================== --- trunk/edje/src/lib/edje_calc.c 2009-06-02 17:08:30 UTC (rev 40874) +++ trunk/edje/src/lib/edje_calc.c 2009-06-03 13:17:06 UTC (rev 40875) @@ -1548,10 +1548,10 @@ /* Common move, resize and color_set for all part. */ switch (ep->part->type) { - case EDJE_PART_TYPE_RECTANGLE: case EDJE_PART_TYPE_IMAGE: evas_object_image_scale_hint_set(ep->object, chosen_desc->image.scale_hint); + case EDJE_PART_TYPE_RECTANGLE: case EDJE_PART_TYPE_TEXTBLOCK: case EDJE_PART_TYPE_GRADIENT: case EDJE_PART_TYPE_BOX: |
From: Enlightenment S. <no-...@en...> - 2009-06-19 19:49:15
|
Log: move adding of events if entry only if entry part exists. Author: raster Date: 2009-06-18 07:01:26 -0700 (Thu, 18 Jun 2009) New Revision: 41103 Modified: trunk/edje/src/lib/edje_entry.c trunk/edje/src/lib/edje_load.c trunk/edje/src/lib/edje_smart.c Modified: trunk/edje/src/lib/edje_entry.c =================================================================== --- trunk/edje/src/lib/edje_entry.c 2009-06-18 12:49:04 UTC (rev 41102) +++ trunk/edje/src/lib/edje_entry.c 2009-06-18 14:01:26 UTC (rev 41103) @@ -1541,6 +1541,10 @@ void _edje_entry_shutdown(Edje *ed) { + evas_object_event_callback_del(ed->obj, EVAS_CALLBACK_FOCUS_IN, _edje_focus_in_cb); + evas_object_event_callback_del(ed->obj, EVAS_CALLBACK_FOCUS_OUT, _edje_focus_out_cb); + evas_object_event_callback_del(ed->obj, EVAS_CALLBACK_KEY_DOWN, _edje_key_down_cb); + evas_object_event_callback_del(ed->obj, EVAS_CALLBACK_KEY_UP, _edje_key_up_cb); } void Modified: trunk/edje/src/lib/edje_load.c =================================================================== --- trunk/edje/src/lib/edje_load.c 2009-06-18 12:49:04 UTC (rev 41102) +++ trunk/edje/src/lib/edje_load.c 2009-06-18 14:01:26 UTC (rev 41103) @@ -281,6 +281,7 @@ Eina_List *parts = NULL; Eina_List *old_swallows; int group_path_started = 0; + int entries = 0; ed = _edje_fetch(obj); if (!ed) return 0; @@ -290,6 +291,8 @@ (ed->group) && (!strcmp(group, ed->group))) return 1; + //**// + _edje_entry_shutdown(ed); old_swallows = _edje_swallows_collect(ed); if (_edje_script_only(ed)) _edje_script_only_shutdown(ed); @@ -480,7 +483,10 @@ if (rp->param1.description->text.id_text_source >= 0) rp->text.text_source = ed->table_parts[rp->param1.description->text.id_text_source % ed->table_parts_size]; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) - _edje_entry_real_part_init(rp); + { + _edje_entry_real_part_init(rp); + entries++; + } } } @@ -707,11 +713,14 @@ } } } + //**// + if (entries > 0) _edje_entry_init(ed); return 1; } else return 0; ed->load_error = EDJE_LOAD_ERROR_NONE; + if (entries > 0) _edje_entry_init(ed); return 1; } Modified: trunk/edje/src/lib/edje_smart.c =================================================================== --- trunk/edje/src/lib/edje_smart.c 2009-06-18 12:49:04 UTC (rev 41102) +++ trunk/edje/src/lib/edje_smart.c 2009-06-18 14:01:26 UTC (rev 41103) @@ -68,7 +68,7 @@ evas_object_geometry_get(obj, &(ed->x), &(ed->y), &(ed->w), &(ed->h)); ed->obj = obj; _edje_edjes = eina_list_append(_edje_edjes, obj); - _edje_entry_init(ed); +//**// _edje_entry_init(ed); /* { Eina_List *l; @@ -93,7 +93,7 @@ ed = evas_object_smart_data_get(obj); if (!ed) return; _edje_block_violate(ed); - _edje_entry_shutdown(ed); +//**// _edje_entry_shutdown(ed); ed->delete_me = 1; _edje_clean_objects(ed); _edje_edjes = eina_list_remove(_edje_edjes, obj); |
From: Enlightenment S. <no-...@en...> - 2009-08-16 03:00:24
|
Log: do not exit on lua errors! this would be righteously bad for apps using themes that happened to use lua... Author: raster Date: 2009-08-15 20:00:14 -0700 (Sat, 15 Aug 2009) New Revision: 41804 Modified: trunk/edje/src/lib/edje_lua.c Modified: trunk/edje/src/lib/edje_lua.c =================================================================== --- trunk/edje/src/lib/edje_lua.c 2009-08-16 02:52:28 UTC (rev 41803) +++ trunk/edje/src/lib/edje_lua.c 2009-08-16 03:00:14 UTC (rev 41804) @@ -164,7 +164,9 @@ break; } fprintf(stderr, "Lua %s error: %s\n", err_type, lua_tostring(L, -1)); - exit(-1); + // don't exit. this is BAD. lua script bugs will cause thngs like e to + // exit mysteriously endig your x session. bad! + // exit(-1); } lua_State * |
From: Enlightenment S. <no-...@en...> - 2009-09-02 12:49:25
|
Log: remove excessive backspace Author: raster Date: 2009-09-02 05:49:09 -0700 (Wed, 02 Sep 2009) New Revision: 42183 Modified: trunk/edje/src/lib/edje_entry.c Modified: trunk/edje/src/lib/edje_entry.c =================================================================== --- trunk/edje/src/lib/edje_entry.c 2009-09-02 12:48:56 UTC (rev 42182) +++ trunk/edje/src/lib/edje_entry.c 2009-09-02 12:49:09 UTC (rev 42183) @@ -1028,11 +1028,6 @@ _range_del(en->cursor, rp->object, en); else _backspace(en->cursor, rp->object, en); - -#ifdef HAVE_ECORE_IMF - if (en->have_composition) - _backspace(en->cursor, rp->object, en); -#endif } _sel_clear(en->cursor, rp->object, en); _curs_update_from_curs(en->cursor, rp->object, en); |