forked from enlightenment/efl
Edje entry: Fixed changed/changed,user with backspace.
It used to send the signals even when we didn't change anything (i.e tried to delete at the start of the entry). Now it's ok. SVN revision: 62044
This commit is contained in:
parent
fad2f9571a
commit
bb20b8067e
|
@ -989,11 +989,16 @@ _range_del(Evas_Textblock_Cursor *c __UNUSED__, Evas_Object *o __UNUSED__, Entry
|
||||||
evas_textblock_cursor_range_delete(en->sel_start, en->sel_end);
|
evas_textblock_cursor_range_delete(en->sel_start, en->sel_end);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
/* Return true if changed something */
|
||||||
|
static Eina_Bool
|
||||||
_backspace(Evas_Textblock_Cursor *c, Evas_Object *o __UNUSED__, Entry *en __UNUSED__)
|
_backspace(Evas_Textblock_Cursor *c, Evas_Object *o __UNUSED__, Entry *en __UNUSED__)
|
||||||
{
|
{
|
||||||
if (evas_textblock_cursor_char_prev(c))
|
if (evas_textblock_cursor_char_prev(c))
|
||||||
evas_textblock_cursor_char_delete(c);
|
{
|
||||||
|
evas_textblock_cursor_char_delete(c);
|
||||||
|
return EINA_TRUE;
|
||||||
|
}
|
||||||
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1155,14 +1160,20 @@ _edje_key_down_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, v
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (en->have_selection)
|
if (en->have_selection)
|
||||||
_range_del(en->cursor, rp->object, en);
|
{
|
||||||
|
_range_del(en->cursor, rp->object, en);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
_backspace(en->cursor, rp->object, en);
|
{
|
||||||
|
if (_backspace(en->cursor, rp->object, en))
|
||||||
|
{
|
||||||
|
_edje_emit(ed, "entry,changed", rp->part->name);
|
||||||
|
_edje_emit(ed, "entry,changed,user", rp->part->name);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
_sel_clear(en->cursor, rp->object, en);
|
_sel_clear(en->cursor, rp->object, en);
|
||||||
_anchors_get(en->cursor, rp->object, en);
|
_anchors_get(en->cursor, rp->object, en);
|
||||||
_edje_emit(ed, "entry,changed", rp->part->name);
|
|
||||||
_edje_emit(ed, "entry,changed,user", rp->part->name);
|
|
||||||
_edje_emit(ed, "entry,key,backspace", rp->part->name);
|
_edje_emit(ed, "entry,key,backspace", rp->part->name);
|
||||||
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
|
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue