Efl.Input: Reset the Efl.Input object as soon as possible.
authorGuilherme Iscaro <iscaro@profusion.mobi>
Thu, 1 Dec 2016 18:12:37 +0000 (16:12 -0200)
committerBruno Dilly <bdilly@profusion.mobi>
Fri, 2 Dec 2016 17:12:56 +0000 (15:12 -0200)
By doing this the pd->device reference is unrefed and deleted
if no one else is holding a reference to it.

src/lib/evas/canvas/efl_input_focus.c
src/lib/evas/canvas/efl_input_key.c
src/lib/evas/canvas/efl_input_pointer.c

index 0bf4912..da2aba6 100644 (file)
@@ -25,6 +25,7 @@ _del_hook(Eo *evt)
           }
         efl_reuse(evt);
         s_cached_event = evt;
+        efl_input_reset(s_cached_event);
      }
    else
      {
@@ -136,7 +137,6 @@ _efl_input_focus_efl_input_event_instance_get(Eo *klass EINA_UNUSED, void *_pd E
      {
         evt = s_cached_event;
         s_cached_event = NULL;
-        efl_input_reset(evt);
         efl_parent_set(evt, owner);
      }
    else
index 685b6b3..869b559 100644 (file)
@@ -25,6 +25,7 @@ _del_hook(Eo *evt)
           }
         efl_reuse(evt);
         s_cached_event = evt;
+        efl_input_reset(s_cached_event);
      }
    else
      {
@@ -44,7 +45,6 @@ _efl_input_key_efl_input_event_instance_get(Eo *klass EINA_UNUSED, void *_pd EIN
      {
         evt = s_cached_event;
         s_cached_event = NULL;
-        efl_input_reset(evt);
         efl_parent_set(evt, owner);
      }
    else
index 4ec9af0..109906e 100644 (file)
@@ -36,6 +36,7 @@ _del_hook(Eo *evt)
           }
         efl_reuse(evt);
         s_cached_event = evt;
+        efl_input_reset(s_cached_event);
      }
    else
      {
@@ -55,7 +56,6 @@ _efl_input_pointer_efl_input_event_instance_get(Eo *klass EINA_UNUSED, void *_pd
      {
         evt = s_cached_event;
         s_cached_event = NULL;
-        efl_input_reset(evt);
         efl_parent_set(evt, owner);
      }
    else