summaryrefslogtreecommitdiff
path: root/src/lib/efl_wl
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/efl_wl')
-rw-r--r--src/lib/efl_wl/Efl_Wl.h11
-rw-r--r--src/lib/efl_wl/efl_wl.c12
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 62f43e0d2b..3bf4aeea20 100644
--- a/src/lib/efl_wl/Efl_Wl.h
+++ b/src/lib/efl_wl/Efl_Wl.h
@@ -178,6 +178,17 @@ EAPI void *efl_wl_global_add(Evas_Object *obj, const void *interface, uint32_t v
178EAPI Eina_Bool efl_wl_surface_extract(Evas_Object *surface); 178EAPI Eina_Bool efl_wl_surface_extract(Evas_Object *surface);
179 179
180/** 180/**
181 * Return the pid for the surface's client
182 *
183 * Get the pid of the underlying client that created the surface.
184 *
185 * @param surface The surface to extract
186 * @return The pid of the surface, or -1 on failure
187 * @since 1.24
188 */
189EAPI int32_t efl_wl_surface_pid_get(Evas_Object *surface);
190
191/**
181 * Get the Evas_Object for an extracted wl_surface resource created by an efl_wl object 192 * Get the Evas_Object for an extracted wl_surface resource created by an efl_wl object
182 * 193 *
183 * @note Passing anything other than a valid wl_surface resource from an efl_wl object will guarantee a crash. 194 * @note Passing anything other than a valid wl_surface resource from an efl_wl object will guarantee a crash.
diff --git a/src/lib/efl_wl/efl_wl.c b/src/lib/efl_wl/efl_wl.c
index d872a4a426..4b1afa64ec 100644
--- a/src/lib/efl_wl/efl_wl.c
+++ b/src/lib/efl_wl/efl_wl.c
@@ -5909,6 +5909,18 @@ extracted_changed(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event
5909 shell_surface_send_configure(data); 5909 shell_surface_send_configure(data);
5910} 5910}
5911 5911
5912int32_t
5913efl_wl_surface_pid_get(Evas_Object *surface)
5914{
5915 Comp_Surface *cs;
5916 int32_t pid;
5917 if (!eina_streq(evas_object_type_get(surface), "comp_surface")) abort();
5918 cs = evas_object_smart_data_get(surface);
5919 EINA_SAFETY_ON_TRUE_RETURN_VAL(cs->dead, -1);
5920 wl_client_get_credentials(wl_resource_get_client(cs->res), &pid, NULL, NULL);
5921 return pid;
5922}
5923
5912Eina_Bool 5924Eina_Bool
5913efl_wl_surface_extract(Evas_Object *surface) 5925efl_wl_surface_extract(Evas_Object *surface)
5914{ 5926{