In E_Dialog space key grabbed before than keydown event reach to entry widget
in E_Entry_Dialog.
Thus, I forced ungrab space key in e_entry_dialog_show constructor.
Moreover, I added escape key handling in _e_entry_cb_key_down callback.
I do not delete space key grub in E_Dialog, because, I think, it may be
usefull here,
when we need selecting controls with space. Or not?
SVN revision: 39936
E_Entry_Dialog *ed;
E_Dialog *dia;
Evas_Object *o, *ob;
E_Entry_Dialog *ed;
E_Dialog *dia;
Evas_Object *o, *ob;
+ Evas_Modifier_Mask mask;
int w, h;
ed = E_OBJECT_ALLOC(E_Entry_Dialog, E_ENTRY_DIALOG_TYPE, _e_entry_dialog_free);
int w, h;
ed = E_OBJECT_ALLOC(E_Entry_Dialog, E_ENTRY_DIALOG_TYPE, _e_entry_dialog_free);
dia->data = ed;
ed->dia = dia;
dia->data = ed;
ed->dia = dia;
+ mask = 0;
+ evas_object_key_ungrab(dia->event_object, "space", mask, ~mask);
+
e_win_delete_callback_set(dia->win, _e_entry_dialog_delete);
if (title) e_dialog_title_set(dia, title);
e_win_delete_callback_set(dia->win, _e_entry_dialog_delete);
if (title) e_dialog_title_set(dia, title);
E_Entry_Dialog *ed;
ev = event_info;
E_Entry_Dialog *ed;
ev = event_info;
- if (strcmp(ev->keyname, "Return")) return;
if (!(ed = data)) return;
if (!(ed = data)) return;
- e_object_ref(E_OBJECT(ed));
- if (ed->ok.func) ed->ok.func(ed->text, ed->ok.data);
- e_object_del(E_OBJECT(ed));
- e_object_unref(E_OBJECT(ed));
+ if (!strcmp(ev->keyname, "Return"))
+ _e_entry_dialog_ok(data, ed->dia);
+ else
+ if (!strcmp(ev->keyname, "Escape"))
+ _e_entry_dialog_cancel(data, ed->dia);