forked from enlightenment/efl
Efl_Input_Device: Implement efl_input_device_parent_set().
This commits moves the parent_set implementation where it should be.
This commit is contained in:
parent
fc66dd62b7
commit
cdc5ecec1e
|
@ -103,4 +103,23 @@ _efl_input_device_parent_get(Eo *obj EINA_UNUSED, Efl_Input_Device_Data *pd)
|
|||
return pd->parent;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_input_device_parent_set(Eo *obj, Efl_Input_Device_Data *pd, Efl_Input_Device *parent)
|
||||
{
|
||||
if (pd->parent == parent) return;
|
||||
if (pd->parent)
|
||||
{
|
||||
Efl_Input_Device_Data *p = efl_data_scope_get(pd->parent, EFL_INPUT_DEVICE_CLASS);
|
||||
p->children = eina_list_remove(p->children, obj);
|
||||
efl_unref(obj);
|
||||
}
|
||||
pd->parent = parent;
|
||||
if (parent)
|
||||
{
|
||||
Efl_Input_Device_Data *p = efl_data_scope_get(parent, EFL_INPUT_DEVICE_CLASS);
|
||||
p->children = eina_list_append(p->children, obj);
|
||||
efl_ref(obj);
|
||||
}
|
||||
}
|
||||
|
||||
#include "interfaces/efl_input_device.eo.c"
|
||||
|
|
|
@ -39,7 +39,7 @@ enum Efl.Input.Device.Sub_Class
|
|||
|
||||
|
||||
/* This represents Evas_Device */
|
||||
/* FIXME: no parent, no children and no Evas */
|
||||
/* FIXME: no children and no Evas */
|
||||
|
||||
class Efl.Input.Device (Efl.Object)
|
||||
{
|
||||
|
@ -75,7 +75,7 @@ class Efl.Input.Device (Efl.Object)
|
|||
}
|
||||
}
|
||||
@property parent {
|
||||
/* set {} */
|
||||
set {}
|
||||
get {}
|
||||
values {
|
||||
parent: Efl.Input.Device;
|
||||
|
|
|
@ -155,24 +155,11 @@ evas_device_parent_set(Evas_Device *dev, Evas_Device *parent)
|
|||
SAFETY_CHECK(parent, EFL_INPUT_DEVICE_CLASS);
|
||||
}
|
||||
|
||||
/* FIXME: move this to Efl.Input.Device */
|
||||
if (d->parent == parent) return;
|
||||
if (d->parent)
|
||||
{
|
||||
Efl_Input_Device_Data *p = efl_data_scope_get(d->parent, EFL_INPUT_DEVICE_CLASS);
|
||||
p->children = eina_list_remove(p->children, dev);
|
||||
}
|
||||
else if (parent)
|
||||
e->devices = eina_list_remove(e->devices, dev);
|
||||
d->parent = parent;
|
||||
efl_input_device_parent_set(dev, parent);
|
||||
if (parent)
|
||||
{
|
||||
Efl_Input_Device_Data *p = efl_data_scope_get(parent, EFL_INPUT_DEVICE_CLASS);
|
||||
p->children = eina_list_append(p->children, dev);
|
||||
}
|
||||
e->devices = eina_list_remove(e->devices, dev);
|
||||
else
|
||||
e->devices = eina_list_append(e->devices, dev);
|
||||
|
||||
evas_event_callback_call(d->evas, EVAS_CALLBACK_DEVICE_CHANGED, dev);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue