From: Jean-Philippe Andre Date: Thu, 15 Jun 2017 00:56:59 +0000 (+0900) Subject: evas: Disable calls to evas_device_class_set X-Git-Tag: upstream/1.20.0~553 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4eb13031eef17f3359fa27eed3dd3c27ca439f95;p=platform%2Fupstream%2Fefl.git 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 --- diff --git a/src/lib/evas/Evas_Common.h b/src/lib/evas/Evas_Common.h index 789e3f3..80e3658 100644 --- a/src/lib/evas/Evas_Common.h +++ b/src/lib/evas/Evas_Common.h @@ -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 diff --git a/src/lib/evas/canvas/evas_device.c b/src/lib/evas/canvas/evas_device.c index 783497a..87f4f47 100644 --- a/src/lib/evas/canvas/evas_device.c +++ b/src/lib/evas/canvas/evas_device.c @@ -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);