Don't refocus a dialog button. (From ilLogict).

SVN revision: 17198
This commit is contained in:
sebastid 2005-10-05 16:41:49 +00:00 committed by sebastid
parent e7fd7fe243
commit 9438f340ff
1 changed files with 9 additions and 6 deletions

View File

@ -317,12 +317,11 @@ _e_dialog_cb_key_down(void *data, Evas *e, Evas_Object *obj, void *event)
if (!strcmp(ev->keyname, "Tab")) if (!strcmp(ev->keyname, "Tab"))
{ {
if (dia->focused && dia->buttons) if ((dia->focused) && (dia->buttons))
{ {
E_Dialog_Button *db; E_Dialog_Button *db, *ndb;
db = dia->focused->data; db = dia->focused->data;
edje_object_signal_emit(db->obj, "unfocus", "");
if (evas_key_modifier_is_set(evas_key_modifier_get(e_win_evas_get(dia->win)), "Shift")) if (evas_key_modifier_is_set(evas_key_modifier_get(e_win_evas_get(dia->win)), "Shift"))
{ {
if (dia->focused->prev) dia->focused = dia->focused->prev; if (dia->focused->prev) dia->focused = dia->focused->prev;
@ -333,9 +332,13 @@ _e_dialog_cb_key_down(void *data, Evas *e, Evas_Object *obj, void *event)
if (dia->focused->next) dia->focused = dia->focused->next; if (dia->focused->next) dia->focused = dia->focused->next;
else dia->focused = dia->buttons; else dia->focused = dia->buttons;
} }
db = evas_list_data(dia->focused); ndb = dia->focused->data;
edje_object_signal_emit(db->obj, "focus", ""); if (ndb != db)
edje_object_signal_emit(db->obj, "enter", ""); {
edje_object_signal_emit(db->obj, "unfocus", "");
edje_object_signal_emit(ndb->obj, "focus", "");
edje_object_signal_emit(ndb->obj, "enter", "");
}
} }
else else