>From b3e0723ba9b5f7dab547cb4f9e063307121e6b24 Mon Sep 17 00:00:00 2001
From: Patryk Kaczmarek <patryk.k@samsung.com>
Date: Tue, 13 Nov 2012 15:46:29 +0100
Subject: [PATCH] evas_key_grab fix

Change-Id: I1c82660d62b1143a2b169dca556e1b646536bb30
---
 trunk/efl/src/lib/evas/canvas/evas_key_grab.c |   12 +++++++++---
 trunk/evas/src/lib/canvas/evas_key_grab.c     |   12 +++++++++---
 2 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/trunk/efl/src/lib/evas/canvas/evas_key_grab.c b/trunk/efl/src/lib/evas/canvas/evas_key_grab.c
index 85e1761..4d7a9bb 100644
--- a/trunk/efl/src/lib/evas/canvas/evas_key_grab.c
+++ b/trunk/efl/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;
diff --git a/trunk/evas/src/lib/canvas/evas_key_grab.c b/trunk/evas/src/lib/canvas/evas_key_grab.c
index 85e1761..4d7a9bb 100644
--- a/trunk/evas/src/lib/canvas/evas_key_grab.c
+++ b/trunk/evas/src/lib/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;
-- 
1.7.9.5

