From b909ccbd47e92b4b352cab6f18131ddd9cb17971 Mon Sep 17 00:00:00 2001 From: jeon Date: Thu, 27 Aug 2020 14:48:56 +0900 Subject: [PATCH] e_keyrouter: retrun false in an intercept hook if only an one hook returns false Change-Id: Idc9843e852c58eb4523e20924cc70c3d6cce298d --- src/bin/e_keyrouter.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/bin/e_keyrouter.c b/src/bin/e_keyrouter.c index cac1ef6279..765923b587 100644 --- a/src/bin/e_keyrouter.c +++ b/src/bin/e_keyrouter.c @@ -69,19 +69,20 @@ E_API Eina_Bool e_keyrouter_intercept_hook_call(E_Keyrouter_Intercept_Hook_Point hookpoint, int type, Ecore_Event_Key *event) { E_Keyrouter_Intercept_Hook *ch; - Eina_Bool res = EINA_TRUE; + Eina_Bool res = EINA_TRUE, ret = EINA_TRUE; _e_keyrouter_intercept_hooks_walking++; EINA_INLIST_FOREACH(_e_keyrouter_intercept_hooks[hookpoint], ch) { if (ch->delete_me) continue; res = ch->func(ch->data, type, event); + if (!res) ret = EINA_FALSE; } _e_keyrouter_intercept_hooks_walking--; if ((_e_keyrouter_intercept_hooks_walking == 0) && (_e_keyrouter_intercept_hooks_delete > 0)) _e_keyrouter_intercept_hooks_clean(); - return res; + return ret; } static void -- 2.34.1