diff options
Diffstat (limited to 'src/lib/efl_wl')
-rw-r--r-- | src/lib/efl_wl/Efl_Wl.h | 11 | ||||
-rw-r--r-- | src/lib/efl_wl/efl_wl.c | 12 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/lib/efl_wl/Efl_Wl.h b/src/lib/efl_wl/Efl_Wl.h index d4385d2a59..cf3de2112e 100644 --- a/src/lib/efl_wl/Efl_Wl.h +++ b/src/lib/efl_wl/Efl_Wl.h | |||
@@ -143,6 +143,17 @@ EAPI void *efl_wl_global_add(Evas_Object *obj, const void *interface, uint32_t v | |||
143 | * @since 1.21 | 143 | * @since 1.21 |
144 | */ | 144 | */ |
145 | EAPI Eina_Bool efl_wl_surface_extract(Evas_Object *surface); | 145 | EAPI Eina_Bool efl_wl_surface_extract(Evas_Object *surface); |
146 | |||
147 | /** | ||
148 | * Get the Evas_Object for an extracted wl_surface resource created by an efl_wl object | ||
149 | * | ||
150 | * @note Passing anything other than a valid wl_surface resource from an efl_wl object will guarantee a crash. | ||
151 | * | ||
152 | * @param surface_resource The wl_resource for a wl_surface | ||
153 | * @return The Evas_Object of the surface, NULL on failure | ||
154 | * @since 1.21 | ||
155 | */ | ||
156 | EAPI Evas_Object *efl_wl_extracted_surface_object_find(void *surface_resource); | ||
146 | #endif | 157 | #endif |
147 | 158 | ||
148 | #endif | 159 | #endif |
diff --git a/src/lib/efl_wl/efl_wl.c b/src/lib/efl_wl/efl_wl.c index 9eec04e916..7e76d2a765 100644 --- a/src/lib/efl_wl/efl_wl.c +++ b/src/lib/efl_wl/efl_wl.c | |||
@@ -5561,3 +5561,15 @@ efl_wl_surface_extract(Evas_Object *surface) | |||
5561 | evas_object_smart_member_del(surface); | 5561 | evas_object_smart_member_del(surface); |
5562 | return EINA_TRUE; | 5562 | return EINA_TRUE; |
5563 | } | 5563 | } |
5564 | |||
5565 | Evas_Object * | ||
5566 | efl_wl_extracted_surface_object_find(void *surface_resource) | ||
5567 | { | ||
5568 | Comp_Surface *cs = wl_resource_get_user_data(surface_resource); | ||
5569 | |||
5570 | EINA_SAFETY_ON_NULL_RETURN_VAL(cs, NULL); | ||
5571 | EINA_SAFETY_ON_TRUE_RETURN_VAL(!cs->extracted, NULL); | ||
5572 | EINA_SAFETY_ON_TRUE_RETURN_VAL(cs->dead, NULL); | ||
5573 | |||
5574 | return cs->obj; | ||
5575 | } | ||