From a3bceeb6008f1081749e797d907da06d5f09d37b Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Fri, 23 Nov 2012 15:30:38 +0000 Subject: [PATCH] evas - Re: [E-devel] [PATCH] [EVAS] evas_object_key_grab add check for same modifiers Hi all, I had prepare some fix for evas_object_key_grab function. In my opinion when given modifiers are equal it should return FALSE. Please verify attached file. Regards, Patrick Signed-Off-By: Patryk Kaczmarek SVN revision: 79563 --- AUTHORS | 2 +- src/lib/evas/canvas/evas_key_grab.c | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/AUTHORS b/AUTHORS index 01f10f783c..e22c3f2fe2 100644 --- a/AUTHORS +++ b/AUTHORS @@ -110,7 +110,7 @@ Sohyun Kim Boris Faure Eduardo Lima (Etrunko) Leandro Dorileo (dorileo) - +Patryk Kaczmarek Embryo ------ diff --git a/src/lib/evas/canvas/evas_key_grab.c b/src/lib/evas/canvas/evas_key_grab.c index 85e1761b31..9f65c04cee 100644 --- a/src/lib/evas/canvas/evas_key_grab.c +++ b/src/lib/evas/canvas/evas_key_grab.c @@ -158,14 +158,20 @@ _key_grab(Eo *eo_obj, void *_pd, va_list *list) Evas_Key_Grab *g; Evas_Object_Protected_Data *obj = _pd; - if (!keyname) - *ret = EINA_FALSE; + if (((modifiers == not_modifiers) && (modifiers != 0)) || (!keyname)) + { + *ret = EINA_FALSE; + return; + } if (exclusive) { g = evas_key_grab_find(eo_obj, obj, keyname, modifiers, not_modifiers, exclusive); if (g) - *ret = EINA_FALSE; + { + *ret = EINA_FALSE; + return; + } } g = evas_key_grab_new(eo_obj, obj, keyname, modifiers, not_modifiers, exclusive); *ret = (!g) ? EINA_FALSE : EINA_TRUE;