From 9438f340ff9c2ff08cdf38dc674dd33b79f03d39 Mon Sep 17 00:00:00 2001 From: sebastid Date: Wed, 5 Oct 2005 16:41:49 +0000 Subject: [PATCH] Don't refocus a dialog button. (From ilLogict). SVN revision: 17198 --- src/bin/e_dialog.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/bin/e_dialog.c b/src/bin/e_dialog.c index 5a45c7be2..d7c8ca3d9 100644 --- a/src/bin/e_dialog.c +++ b/src/bin/e_dialog.c @@ -317,12 +317,11 @@ _e_dialog_cb_key_down(void *data, Evas *e, Evas_Object *obj, void *event) 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; - 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 (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; else dia->focused = dia->buttons; } - db = evas_list_data(dia->focused); - edje_object_signal_emit(db->obj, "focus", ""); - edje_object_signal_emit(db->obj, "enter", ""); + ndb = dia->focused->data; + if (ndb != db) + { + edje_object_signal_emit(db->obj, "unfocus", ""); + edje_object_signal_emit(ndb->obj, "focus", ""); + edje_object_signal_emit(ndb->obj, "enter", ""); + } } else