Edje entry: range_del_emit - only emit if there was a non-empty range.
authortasn <tasn>
Mon, 18 Jun 2012 13:31:24 +0000 (13:31 +0000)
committertasn <tasn@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 18 Jun 2012 13:31:24 +0000 (13:31 +0000)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/edje@72399 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/edje_entry.c

index d88f223..af1b633 100644 (file)
@@ -1048,10 +1048,15 @@ _range_del_emit(Edje *ed, Evas_Textblock_Cursor *c __UNUSED__, Evas_Object *o __
 {
    size_t start, end;
    char *tmp;
-   Edje_Entry_Change_Info *info = calloc(1, sizeof(*info));
-   info->insert = EINA_FALSE;
+   Edje_Entry_Change_Info *info;
+
    start = evas_textblock_cursor_pos_get(en->sel_start);
    end = evas_textblock_cursor_pos_get(en->sel_end);
+   if (start == end)
+      goto noop;
+
+   info = calloc(1, sizeof(*info));
+   info->insert = EINA_FALSE;
    info->change.del.start = start;
    info->change.del.end = end;
 
@@ -1062,6 +1067,7 @@ _range_del_emit(Edje *ed, Evas_Textblock_Cursor *c __UNUSED__, Evas_Object *o __
    _edje_emit(ed, "entry,changed", en->rp->part->name);
    _edje_emit_full(ed, "entry,changed,user", en->rp->part->name, info,
                    _free_entry_change_info);
+noop:
    _sel_clear(en->cursor, en->rp->object, en);
 }