summaryrefslogtreecommitdiff
path: root/src/lib/evas/canvas/efl_input_key.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/evas/canvas/efl_input_key.c')
-rw-r--r--src/lib/evas/canvas/efl_input_key.c71
1 files changed, 18 insertions, 53 deletions
diff --git a/src/lib/evas/canvas/efl_input_key.c b/src/lib/evas/canvas/efl_input_key.c
index c6b8061211..ce1acd6b26 100644
--- a/src/lib/evas/canvas/efl_input_key.c
+++ b/src/lib/evas/canvas/efl_input_key.c
@@ -12,50 +12,18 @@
#define MY_CLASS EFL_INPUT_KEY_CLASS
-static Efl_Input_Key *s_cached_event = NULL;
-
-static void
-_del_hook(Eo *evt)
-{
- if (!s_cached_event)
- {
- if (efl_parent_get(evt))
- {
- efl_ref(evt);
- efl_parent_set(evt, NULL);
- }
- efl_reuse(evt);
- s_cached_event = evt;
- efl_input_reset(s_cached_event);
- }
- else
- {
- efl_del_intercept_set(evt, NULL);
- efl_del(evt);
- }
-}
-
EOLIAN static Efl_Input_Key *
-_efl_input_key_efl_input_event_instance_get(Eo *klass EINA_UNUSED, void *_pd EINA_UNUSED,
+_efl_input_key_efl_input_event_instance_get(Eo *klass, void *_pd EINA_UNUSED,
Eo *owner, void **priv)
{
Efl_Input_Key_Data *ev;
Efl_Input_Key *evt;
Evas *evas;
- if (s_cached_event)
- {
- evt = s_cached_event;
- s_cached_event = NULL;
- efl_parent_set(evt, owner);
- }
- else
- {
- evt = efl_add(EFL_INPUT_KEY_CLASS, owner);
- efl_del_intercept_set(evt, _del_hook);
- }
+ evt = efl_input_event_instance_get(klass, owner);
+ if (!evt) return NULL;
- ev = efl_data_scope_get(evt, EFL_INPUT_KEY_CLASS);
+ ev = efl_data_scope_get(evt, klass);
ev->fake = EINA_FALSE;
if (priv) *priv = ev;
@@ -71,12 +39,9 @@ _efl_input_key_efl_input_event_instance_get(Eo *klass EINA_UNUSED, void *_pd EIN
}
EOLIAN static void
-_efl_input_key_class_destructor(Efl_Class *klass EINA_UNUSED)
+_efl_input_key_class_destructor(Efl_Class *klass)
{
- // this is a strange situation...
- efl_del_intercept_set(s_cached_event, NULL);
- efl_del(s_cached_event);
- s_cached_event = NULL;
+ efl_input_event_instance_clean(klass);
}
EOLIAN static Efl_Object *
@@ -113,7 +78,7 @@ _efl_input_key_pressed_set(Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd, Eina_Boo
}
EOLIAN static Eina_Bool
-_efl_input_key_pressed_get(Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd)
+_efl_input_key_pressed_get(const Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd)
{
return pd->pressed;
}
@@ -125,7 +90,7 @@ _efl_input_key_key_name_set(Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd, const c
}
EOLIAN static const char *
-_efl_input_key_key_name_get(Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd)
+_efl_input_key_key_name_get(const Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd)
{
return pd->keyname;
}
@@ -137,7 +102,7 @@ _efl_input_key_key_set(Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd, const char *
}
EOLIAN static const char *
-_efl_input_key_key_get(Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd)
+_efl_input_key_key_get(const Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd)
{
return pd->key;
}
@@ -149,7 +114,7 @@ _efl_input_key_string_set(Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd, const cha
}
EOLIAN static const char *
-_efl_input_key_string_get(Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd)
+_efl_input_key_string_get(const Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd)
{
return pd->string;
}
@@ -161,7 +126,7 @@ _efl_input_key_compose_set(Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd, const ch
}
EOLIAN static const char *
-_efl_input_key_compose_get(Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd)
+_efl_input_key_compose_get(const Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd)
{
return pd->compose;
}
@@ -173,7 +138,7 @@ _efl_input_key_key_code_set(Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd, int val
}
EOLIAN static int
-_efl_input_key_key_code_get(Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd)
+_efl_input_key_key_code_get(const Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd)
{
return pd->keycode;
}
@@ -221,7 +186,7 @@ _efl_input_key_efl_input_event_timestamp_set(Eo *obj EINA_UNUSED, Efl_Input_Key_
}
EOLIAN static double
-_efl_input_key_efl_input_event_timestamp_get(Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd)
+_efl_input_key_efl_input_event_timestamp_get(const Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd)
{
return pd->timestamp;
}
@@ -233,7 +198,7 @@ _efl_input_key_efl_input_event_event_flags_set(Eo *obj EINA_UNUSED, Efl_Input_Ke
}
EOLIAN static Efl_Input_Flags
-_efl_input_key_efl_input_event_event_flags_get(Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd)
+_efl_input_key_efl_input_event_event_flags_get(const Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd)
{
return pd->event_flags;
}
@@ -245,13 +210,13 @@ _efl_input_key_efl_input_event_device_set(Eo *obj EINA_UNUSED, Efl_Input_Key_Dat
}
EOLIAN static Efl_Input_Device *
-_efl_input_key_efl_input_event_device_get(Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd)
+_efl_input_key_efl_input_event_device_get(const Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd)
{
return pd->device;
}
EOLIAN static Eina_Bool
-_efl_input_key_efl_input_state_modifier_enabled_get(Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd,
+_efl_input_key_efl_input_state_modifier_enabled_get(const Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd,
Efl_Input_Modifier mod, const Efl_Input_Device *seat)
{
const char *name;
@@ -268,7 +233,7 @@ _efl_input_key_efl_input_state_modifier_enabled_get(Eo *obj EINA_UNUSED, Efl_Inp
}
EOLIAN static Eina_Bool
-_efl_input_key_efl_input_state_lock_enabled_get(Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd,
+_efl_input_key_efl_input_state_lock_enabled_get(const Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd,
Efl_Input_Lock lock, const Efl_Input_Device *seat)
{
const char *name;
@@ -285,7 +250,7 @@ _efl_input_key_efl_input_state_lock_enabled_get(Eo *obj EINA_UNUSED, Efl_Input_K
}
EOLIAN static Eina_Bool
-_efl_input_key_efl_input_event_fake_get(Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd)
+_efl_input_key_efl_input_event_fake_get(const Eo *obj EINA_UNUSED, Efl_Input_Key_Data *pd)
{
return pd->fake;
}