static void _key_down(int id, void *data, Evas *e, Evas_Object *obj,
Evas_Event_Key_Down *ev);
-static void _mouse_up(int id, void *data, Evas *e, Evas_Object *obj,
- Evas_Event_Mouse_Up *ev);
+static void _mouse_down(int id, void *data, Evas *e, Evas_Object *obj,
+ Evas_Event_Mouse_Down *ev);
static void _mouse_move(int id, void *data, Evas *e, Evas_Object *obj,
Evas_Event_Mouse_Move *ev)
.unfocused = _unfocused,
.key_up = _key_up,
.key_down = _key_down,
- .mouse_up = _mouse_up,
+ .mouse_down = _mouse_down,
.mouse_move = _mouse_move
};
}
}
+static bool _check_done(struct _priv *priv)
+{
+ int i;
+
+ if (!strcmp(elm_entry_entry_get(priv->name), "")) {
+ elm_object_focus_set(priv->name, EINA_TRUE);
+ return false;
+ }
+
+ if (!priv->locked) {
+ _update_user(priv, NULL);
+ return false;
+ }
+
+ for (i = 0; i < COUNT_PIN; i++) {
+ if (elm_entry_is_empty(priv->pin[i])) {
+ elm_object_focus_set(priv->pin[i], EINA_TRUE);
+ return false;
+ }
+ }
+
+ return true;
+}
+
+static void _select_done(struct _priv *priv)
+{
+ char pincode[8];
+
+ if (!_check_done(priv))
+ return;
+
+ snprintf(pincode, sizeof(pincode), "%s%s%s%s",
+ elm_entry_entry_get(priv->pin[0]),
+ elm_entry_entry_get(priv->pin[1]),
+ elm_entry_entry_get(priv->pin[2]),
+ elm_entry_entry_get(priv->pin[3]));
+
+ viewmgr_update_view(VIEW_PIN, UPDATE_TYPE_PIN_CODE, pincode);
+ viewmgr_show_view(VIEW_PIN);
+}
+
static void _select(struct _priv *priv, int id, Evas_Object *obj)
{
switch (id) {
case INPUT_HANDLER_TYPE_ENTRY:
elm_object_focus_set(priv->done, EINA_TRUE);
break;
+ case INPUT_HANDLER_TYPE_BTN_DONE:
+ _select_done(priv);
+ break;
case INPUT_HANDLER_TYPE_BTN_CANCEL:
if (_check_changed_input(priv)) {
_add_discard_popup(priv);
viewmgr_show_view(VIEW_ACTION_MENU);
}
-static bool _check_done(struct _priv *priv)
-{
- int i;
-
- if (!strcmp(elm_entry_entry_get(priv->name), "")) {
- elm_object_focus_set(priv->name, EINA_TRUE);
- return false;
- }
-
- if (!priv->locked) {
- _update_user(priv, NULL);
- return false;
- }
-
- for (i = 0; i < COUNT_PIN; i++) {
- if (elm_entry_is_empty(priv->pin[i])) {
- elm_object_focus_set(priv->pin[i], EINA_TRUE);
- return false;
- }
- }
-
- return true;
-}
-
static void _key_up(int id, void *data, Evas *e, Evas_Object *obj,
Evas_Event_Key_Up *ev)
{
struct _priv *priv;
- char pincode[8];
if (!data) {
_ERR("Invalid argument");
}
viewmgr_pop_view();
} else if (!strcmp(ev->keyname, KEY_ENTER)) {
- if (!_check_done(priv))
- return;
-
- snprintf(pincode, sizeof(pincode), "%s%s%s%s",
- elm_entry_entry_get(priv->pin[0]),
- elm_entry_entry_get(priv->pin[1]),
- elm_entry_entry_get(priv->pin[2]),
- elm_entry_entry_get(priv->pin[3]));
- viewmgr_update_view(VIEW_PIN, UPDATE_TYPE_PIN_CODE, pincode);
- viewmgr_show_view(VIEW_PIN);
+ _select_done(priv);
} else if (!strcmp(ev->keyname, KEY_MENU) ||
!strcmp(ev->keyname, KEY_CONTEXT_MENU)) {
_show_action_menu(priv);
}
} else if (!strcmp(ev->keyname, KEY_ENTER)) {
_select(priv, id, obj);
+ ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
} else if (!strcmp(ev->keyname, KEY_MENU) ||
!strcmp(ev->keyname, KEY_CONTEXT_MENU)) {
switch (id) {
}
}
-static void _mouse_up(int id, void *data, Evas *e, Evas_Object *obj,
- Evas_Event_Mouse_Up *ev)
+static void _mouse_down(int id, void *data, Evas *e, Evas_Object *obj,
+ Evas_Event_Mouse_Down *ev)
{
struct _priv *priv;
priv = data;
_select(priv, id, obj);
+ ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
}
static void _change_entry(Evas_Object *name, Eina_Bool disable, const char *text,