ivi-shell: add API for weston_surface -> ivi_layout_surface
Add ivi-layout API for getting an ivi_layout_surface from a
weston_surface if it exists. This can be used by controllers that hook
up to core Weston callbacks and get handed a weston_surface, but need to
use ivi-layout API to manipulate it.
The only ways ivi-layout itself would be able to go from weston_surface
to ivi_layout_surface are either searching through the list of all
ivi_layout_surfaces or adding a dummy destroy listener to the
weston_surface. Therefore the implementation is delegated to
ivi-shell.c.
Ivi-shell.c can easily look up the ivi_shell_surface for a
weston_surface, and that will map 1:1 to an ivi_layout_surface.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Emre Ucan <eucan@de.adit-jv.com>
diff --git a/ivi-shell/ivi-layout-export.h b/ivi-shell/ivi-layout-export.h
index 33aa820..e437d9e 100644
--- a/ivi-shell/ivi-layout-export.h
+++ b/ivi-shell/ivi-layout-export.h
@@ -567,6 +567,15 @@
void *target, size_t size,
int32_t x, int32_t y,
int32_t width, int32_t height);
+
+ /**
+ * Returns the ivi_layout_surface or NULL
+ *
+ * NULL is returned if there is no ivi_layout_surface corresponding
+ * to the given weston_surface.
+ */
+ struct ivi_layout_surface *
+ (*get_surface)(struct weston_surface *surface);
};
#ifdef __cplusplus