{
int id = (int)((intptr_t)data);
Ecore_Event_Key *ev = event;
+ int ret;
if (ev == NULL)
return ECORE_CALLBACK_DONE;
#if defined(X11)
- x_syspopup_process_keypress(id, ev->keyname);
+ ret = x_syspopup_process_keypress(id, ev->keyname);
#elif defined(WAYLAND)
- wl_syspopup_process_keypress(id, ev->keyname);
+ ret = wl_syspopup_process_keypress(id, ev->keyname);
#endif
+ if (ret < 0)
+ return ECORE_CALLBACK_PASS_ON;
return ECORE_CALLBACK_DONE;
}
#endif
_syspopup_reset_timeout(sp, info);
- ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, __keydown_cb,
+ if (sp->endkey_act != SYSPOPUP_KEYEND_IGNORE) {
+ ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, __keydown_cb,
(const void *)((intptr_t)sp->id));
+ }
_syspopup_info_free(info);
syspopup *sp;
if (keyname == NULL)
- return 0;
+ return -1;
_D("key press - %s", keyname);
if (strcmp(keyname, KEY_END) != 0)
- return 0;
+ return -1;
sp = _syspopup_find_by_id(id);
if (sp == NULL)
- return 0;
+ return -1;
_D("find key down - %s", sp->name);
if (sp->endkey_act == SYSPOPUP_KEYEND_TERM) {
syspopup *sp = NULL;
if (keyname == NULL)
- return 0;
+ return -1;
_D("key press - %s", keyname);
if (strcmp(keyname, KEY_END) != 0)
- return 0;
+ return -1;
sp = _syspopup_find_by_id(id);
if (sp == NULL)
- return 0;
+ return -1;
dpy = XOpenDisplay(NULL);