Enlightenment CVS committal Author : moom Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_editable.c Log Message: * [E_Editable] Fix valgrind warnings and mem leak =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_editable.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- e_editable.c 20 Aug 2006 09:48:13 -0000 1.8 +++ e_editable.c 20 Aug 2006 22:24:16 -0000 1.9 @@ -966,22 +966,32 @@ /* Position of the start cursor (note, the start cursor can not be at * the end of the editable object, and the editable object can not be * empty, or it would have returned before)*/ - evas_object_text_char_pos_get(text_obj, start_pos, &cx, &cy, &cw, &ch); + if (!evas_object_text_char_pos_get(text_obj, start_pos, + &cx, &cy, &cw, &ch)) + return; + sx = tx + cx - 1; sy = ty + cy; + /* Position of the end cursor (note, the editable object can not be * empty, or it would have returned before)*/ if (end_pos >= sd->unicode_length) { - evas_object_text_char_pos_get(text_obj, sd->unicode_length - 1, - &cx, &cy, &cw, &ch); + if (!evas_object_text_char_pos_get(text_obj, + sd->unicode_length - 1, + &cx, &cy, &cw, &ch)) + return; + sw = (tx + cx + cw - 1) - sx; sh = ch; } else { - evas_object_text_char_pos_get(text_obj, end_pos, &cx, &cy, &cw, &ch); + if (!evas_object_text_char_pos_get(text_obj, end_pos, + &cx, &cy, &cw, &ch)) + return; + sw = (tx + cx - 1) - sx; sh = ch; } @@ -1077,6 +1087,7 @@ { Evas *evas; E_Editable_Smart_Data *sd; + Evas_Coord ox, oy; if ((!object) || !(evas = evas_object_evas_get(object))) return; @@ -1087,6 +1098,7 @@ _e_editable_smart_use++; evas_object_smart_data_set(object, sd); + evas_object_geometry_get(object, &ox, &oy, NULL, NULL); sd->text = malloc((E_EDITABLE_BLOCK_SIZE + 1) * sizeof(char)); sd->text[0] = '\0'; @@ -1106,26 +1118,31 @@ sd->password_mode = 0; sd->clip_object = evas_object_rectangle_add(evas); + evas_object_move(sd->clip_object, ox, oy); evas_object_smart_member_add(sd->clip_object, object); sd->event_object = evas_object_rectangle_add(evas); evas_object_color_set(sd->event_object, 255, 255, 255, 0); evas_object_clip_set(sd->event_object, sd->clip_object); + evas_object_move(sd->event_object, ox, oy); evas_object_smart_member_add(sd->event_object, object); sd->text_object = edje_object_add(evas); evas_object_pass_events_set(sd->text_object, 1); evas_object_clip_set(sd->text_object, sd->clip_object); + evas_object_move(sd->text_object, ox, oy); evas_object_smart_member_add(sd->text_object, object); sd->selection_object = edje_object_add(evas); evas_object_pass_events_set(sd->selection_object, 1); evas_object_clip_set(sd->selection_object, sd->clip_object); + evas_object_move(sd->selection_object, ox, oy); evas_object_smart_member_add(sd->selection_object, object); sd->cursor_object = edje_object_add(evas); evas_object_pass_events_set(sd->cursor_object, 1); evas_object_clip_set(sd->cursor_object, sd->clip_object); + evas_object_move(sd->cursor_object, ox, oy); evas_object_smart_member_add(sd->cursor_object, object); _e_editable_cursor_update(object); @@ -1145,7 +1162,7 @@ evas_object_del(sd->text_object); evas_object_del(sd->cursor_object); evas_object_del(sd->selection_object); - + free(sd->text); free(sd); _e_editable_smart_use--; ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs