if ((!en) || (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) ||
(rp->part->entry_mode < EDJE_ENTRY_EDIT_MODE_EDITABLE))
return;
- if (!ev->key) return;
+ if (!ev->keyname) return;
#ifdef HAVE_ECORE_IMF
if (en->imf_context)
}
#endif
- if ((!strcmp(ev->key, "Escape")) ||
- (!strcmp(ev->key, "Return")) || (!strcmp(ev->key, "KP_Enter")))
- _edje_entry_imf_context_reset(rp);
+ if ((!strcmp(ev->keyname, "Escape")) ||
+ (!strcmp(ev->keyname, "Return")) || (!strcmp(ev->keyname, "KP_Enter")))
+ _edje_entry_imf_context_reset(en);
old_cur_pos = evas_textblock_cursor_pos_get(en->cursor);
shift = evas_key_modifier_is_set(ev->modifiers, "Shift");
multiline = rp->part->multiline;
cursor_changed = EINA_FALSE;
- if (!strcmp(ev->key, "Escape"))
+ if (!strcmp(ev->keyname, "Escape"))
{
// dead keys here. Escape for now (should emit these)
_edje_emit(ed, "entry,key,escape", rp->part->name);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
}
- else if (!strcmp(ev->key, "Up") || !strcmp(ev->key, "KP_Up"))
+ else if (!strcmp(ev->keyname, "Up") || !strcmp(ev->keyname, "KP_Up"))
{
if (multiline)
{
_edje_emit(ed, "entry,key,up", rp->part->name);
_edje_emit(rp->edje, "cursor,changed,manual", rp->part->name);
}
- else if (!strcmp(ev->key, "Down") || !strcmp(ev->key, "KP_Down"))
+ else if (!strcmp(ev->keyname, "Down") || !strcmp(ev->keyname, "KP_Down"))
{
if (multiline)
{
_edje_emit(ed, "entry,key,down", rp->part->name);
_edje_emit(rp->edje, "cursor,changed,manual", rp->part->name);
}
- else if (!strcmp(ev->key, "Left") || !strcmp(ev->key, "KP_Left"))
+ else if (!strcmp(ev->keyname, "Left") || !strcmp(ev->keyname, "KP_Left"))
{
if (en->select_allow)
{
_edje_emit(rp->edje, "cursor,changed,manual", rp->part->name);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
}
- else if (!strcmp(ev->key, "Right") || !strcmp(ev->key, "KP_Right"))
+ else if (!strcmp(ev->keyname, "Right") || !strcmp(ev->keyname, "KP_Right"))
{
if (en->select_allow)
{
_edje_emit(rp->edje, "cursor,changed,manual", rp->part->name);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
}
- else if (!strcmp(ev->key, "BackSpace"))
+ else if (!strcmp(ev->keyname, "BackSpace"))
{
if (control && !en->have_selection)
{
_edje_emit(ed, "entry,key,backspace", rp->part->name);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
}
- else if (!strcmp(ev->key, "Delete") || !strcmp(ev->key, "KP_Delete"))
+ else if (!strcmp(ev->keyname, "Delete") || !strcmp(ev->keyname, "KP_Delete"))
{
if (control)
{
_edje_emit(ed, "entry,key,delete", rp->part->name);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
}
- else if (!strcmp(ev->key, "Home") || !strcmp(ev->key, "KP_Home"))
+ else if (!strcmp(ev->keyname, "Home") || !strcmp(ev->keyname, "KP_Home"))
{
if (en->select_allow)
{
_edje_emit(ed, "entry,key,home", rp->part->name);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
}
- else if (!strcmp(ev->key, "End") || !strcmp(ev->key, "KP_End"))
+ else if (!strcmp(ev->keyname, "End") || !strcmp(ev->keyname, "KP_End"))
{
if (en->select_allow)
{
_edje_emit(ed, "entry,key,end", rp->part->name);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
}
- else if ((control) && (!strcmp(ev->key, "v")))
+ else if ((control) && (!shift) && (!strcmp(ev->keyname, "v")))
{
_edje_emit(ed, "entry,paste,request", rp->part->name);
_edje_emit(ed, "entry,paste,request,3", rp->part->name);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
}
- else if ((control) && (!strcmp(ev->key, "a")))
+ else if ((control) && (!strcmp(ev->keyname, "a")))
{
- _edje_emit(ed, "entry,selection,all,request", rp->part->name);
- ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
- }
- else if ((control) && (!strcmp(ev->key, "A")))
- {
- _edje_emit(ed, "entry,selection,none,request", rp->part->name);
- ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
+ if (shift)
+ {
+ _edje_emit(ed, "entry,selection,none,request", rp->part->name);
+ ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
+ }
+ else
+ {
+ _edje_emit(ed, "entry,selection,all,request", rp->part->name);
+ ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
+ }
}
- else if ((control) && ((!strcmp(ev->key, "c") || (!strcmp(ev->key, "Insert")))))
+ else if ((control) && (((!shift) && !strcmp(ev->keyname, "c")) || !strcmp(ev->keyname, "Insert")))
{
_edje_emit(ed, "entry,copy,notify", rp->part->name);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
}
- else if ((control) && ((!strcmp(ev->key, "x") || (!strcmp(ev->key, "m")))))
+ else if ((control) && (!shift) && ((!strcmp(ev->keyname, "x") || (!strcmp(ev->keyname, "m")))))
{
_edje_emit(ed, "entry,cut,notify", rp->part->name);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
}
- else if ((control) && (!strcmp(ev->key, "z")))
+ else if ((control) && (!strcmp(ev->keyname, "z")))
{
if (shift)
{
}
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
}
- else if ((control) && (!strcmp(ev->key, "y")))
+ else if ((control) && (!shift) && (!strcmp(ev->keyname, "y")))
{
// redo
_edje_emit(ed, "entry,redo,request", rp->part->name);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
}
- else if ((control) && (!strcmp(ev->key, "w")))
+ else if ((control) && (!shift) && (!strcmp(ev->keyname, "w")))
{
_sel_clear(en->cursor, rp->object, en);
// select current word?
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
}
- else if (!strcmp(ev->key, "Tab"))
+ else if (!strcmp(ev->keyname, "Tab"))
{
if (multiline)
{
}
_edje_emit(ed, "entry,key,tab", rp->part->name);
}
- else if ((!strcmp(ev->key, "ISO_Left_Tab")) && (multiline))
+ else if ((!strcmp(ev->keyname, "ISO_Left_Tab")) && (multiline))
{
// remove a tab
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
}
- else if (!strcmp(ev->key, "Prior") || !strcmp(ev->key, "KP_Prior"))
+ else if (!strcmp(ev->keyname, "Prior") || !strcmp(ev->keyname, "KP_Prior"))
{
if (en->select_allow)
{
_edje_emit(ed, "entry,key,pgup", rp->part->name);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
}
- else if (!strcmp(ev->key, "Next") || !strcmp(ev->key, "KP_Next"))
+ else if (!strcmp(ev->keyname, "Next") || !strcmp(ev->keyname, "KP_Next"))
{
if (en->select_allow)
{
_edje_emit(ed, "entry,key,pgdn", rp->part->name);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
}
- else if ((!strcmp(ev->key, "Return")) || (!strcmp(ev->key, "KP_Enter")))
+ else if ((!strcmp(ev->keyname, "Return")) || (!strcmp(ev->keyname, "KP_Enter")))
{
if (multiline)
{