evas: Disable calls to evas_device_class_set

After finalize, the type of an input device can not be changed.
So, deprecate the function and prevent anything from happening
unless we're inside efl_add().

Ref T5515
This commit is contained in:
Jean-Philippe Andre 2017-06-15 09:56:59 +09:00
parent ece89aaaa8
commit 4eb13031ee
2 changed files with 4 additions and 1 deletions

View File

@ -1153,9 +1153,11 @@ EAPI const Evas_Device *evas_device_parent_get(const Evas_Device *dev);
* This sets the "primary" class of device (a broad thing like mouse, keyboard,
* touch, pen etc.).
*
* @deprecated The class of a device can not be changed after creation.
*
* @since 1.8
*/
EAPI void evas_device_class_set(Evas_Device *dev, Evas_Device_Class clas);
EAPI void evas_device_class_set(Evas_Device *dev, Evas_Device_Class clas) EINA_DEPRECATED;
/**
* Get the major class of a device

View File

@ -350,6 +350,7 @@ EAPI void
evas_device_class_set(Evas_Device *dev, Evas_Device_Class clas)
{
SAFETY_CHECK(dev, EFL_INPUT_DEVICE_CLASS);
EINA_SAFETY_ON_TRUE_RETURN(efl_finalized_get(dev));
Efl_Input_Device_Data *d = efl_data_scope_get(dev, EFL_INPUT_DEVICE_CLASS);
Evas_Public_Data *edata = efl_data_scope_get(d->evas, EVAS_CANVAS_CLASS);