diff options
author | Jean-Philippe Andre <jp.andre@samsung.com> | 2016-10-13 17:59:13 +0900 |
---|---|---|
committer | Jean-Philippe Andre <jp.andre@samsung.com> | 2016-10-14 14:06:43 +0900 |
commit | 577fa188f5b338dedddb8fef66323155178c4528 (patch) | |
tree | dd1e7e1deff3bdd2a204dbcd12054341ea6a8b58 | |
parent | 3920950985f92a636a6488a5991a42309b2f32fb (diff) | |
download | efl-577fa188f5b338dedddb8fef66323155178c4528.tar.gz |
evas: Fix evas_object_smart_clipped_clipper_get
This was broken for smart objects that are not "clipped smart
objects". This fixes the example evas_smart_object.
NOTE: This EAPI was removed in efl-1.18!
/!\ This was an uncaught API break between 1.17 and 1.18 /!\
@fix
-rw-r--r-- | src/lib/evas/Evas_Legacy.h | 10 | ||||
-rw-r--r-- | src/lib/evas/canvas/evas_object_smart_clipped.c | 13 |
2 files changed, 15 insertions, 8 deletions
diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h index 1962953bf8..8dc8fbf26b 100644 --- a/src/lib/evas/Evas_Legacy.h +++ b/src/lib/evas/Evas_Legacy.h @@ -5223,6 +5223,16 @@ EAPI void evas_object_smart_data_set(Evas_Object *obj, void *data); EAPI void *evas_object_smart_data_get(const Evas_Object *obj); /** + * @brief Get the clipper object for the given clipped smart object. + * + * Use this function if you want to change any of this clipper's properties, + * like colors. + * + * @ingroup Evas_Object_Smart + */ +EAPI Evas_Object *evas_object_smart_clipped_clipper_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT; + +/** * @brief Retrieves the list of the member objects of a given Evas smart * object. * diff --git a/src/lib/evas/canvas/evas_object_smart_clipped.c b/src/lib/evas/canvas/evas_object_smart_clipped.c index a43a36a095..44d1fbe165 100644 --- a/src/lib/evas/canvas/evas_object_smart_clipped.c +++ b/src/lib/evas/canvas/evas_object_smart_clipped.c @@ -8,9 +8,9 @@ eo_data_scope_get(eo_obj, MY_CLASS) : \ evas_object_smart_data_get(eo_obj)); -#define CSO_DATA_GET_OR_RETURN(eo_obj, ptr) \ - CSO_DATA_GET(eo_obj, ptr) \ - if (!ptr) return; +#define CSO_DATA_GET_OR_RETURN(eo_obj, ptr, ...) \ + CSO_DATA_GET(eo_obj, ptr) \ + if (!ptr) return __VA_ARGS__; EOLIAN void _efl_canvas_group_group_children_move(Eo *eo_obj, Evas_Object_Protected_Data *obj EINA_UNUSED, Evas_Coord dx, Evas_Coord dy) @@ -38,12 +38,9 @@ _efl_canvas_group_group_children_move(Eo *eo_obj, Evas_Object_Protected_Data *ob EAPI Evas_Object * evas_object_smart_clipped_clipper_get(const Evas_Object *eo_obj) { - Evas_Object_Smart_Clipped_Data *obj; + CSO_DATA_GET_OR_RETURN(eo_obj, cso, NULL); - if (!eo_isa(eo_obj, EFL_CANVAS_GROUP_CLIPPED_CLASS)) - return NULL; - obj = eo_data_scope_get(eo_obj, EFL_CANVAS_GROUP_CLIPPED_CLASS); - return obj->clipper; + return cso->clipper; } static void |