Introduced surface create and configure function for xdg-apps. Signed-off-by: Michael Teyfel <mtey...@de.adit-jv.com> --- ivi-shell/ivi-layout-shell.h | 8 +++++ ivi-shell/ivi-layout.c | 74 ++++++++++++++++++++++++++++++-------------- 2 files changed, 59 insertions(+), 23 deletions(-)
diff --git a/ivi-shell/ivi-layout-shell.h b/ivi-shell/ivi-layout-shell.h index 68ca68b..c86cbb1 100644 --- a/ivi-shell/ivi-layout-shell.h +++ b/ivi-shell/ivi-layout-shell.h @@ -40,6 +40,14 @@ struct weston_surface; struct ivi_layout_surface; void +ivi_layout_desktop_surface_configure(struct ivi_layout_surface *ivisurf, + int32_t width, int32_t height); + +struct ivi_layout_surface* +ivi_layout_desktop_surface_create(struct weston_surface *wl_surface, + uint32_t id_surface); + +void ivi_layout_surface_configure(struct ivi_layout_surface *ivisurf, int32_t width, int32_t height); diff --git a/ivi-shell/ivi-layout.c b/ivi-shell/ivi-layout.c index 0ca2d72..d8fb42e 100644 --- a/ivi-shell/ivi-layout.c +++ b/ivi-shell/ivi-layout.c @@ -1903,20 +1903,8 @@ ivi_layout_surface_dump(struct weston_surface *surface, * methods of interaction between ivi-shell with ivi-layout */ -void -ivi_layout_surface_configure(struct ivi_layout_surface *ivisurf, - int32_t width, int32_t height) -{ - struct ivi_layout *layout = get_instance(); - - /* emit callback which is set by ivi-layout api user */ - wl_signal_emit(&layout->surface_notification.configure_changed, - ivisurf); -} - -struct ivi_layout_surface* -ivi_layout_surface_create(struct weston_surface *wl_surface, - uint32_t id_surface) +static struct ivi_layout_surface* +surface_create(struct weston_surface *wl_surface, uint32_t id_surface) { struct ivi_layout *layout = get_instance(); struct ivi_layout_surface *ivisurf = NULL; @@ -1926,14 +1914,6 @@ ivi_layout_surface_create(struct weston_surface *wl_surface, return NULL; } - ivisurf = get_surface(&layout->surface_list, id_surface); - if (ivisurf != NULL) { - if (ivisurf->surface != NULL) { - weston_log("id_surface(%d) is already created\n", id_surface); - return NULL; - } - } - ivisurf = calloc(1, sizeof *ivisurf); if (ivisurf == NULL) { weston_log("fails to allocate memory\n"); @@ -1957,7 +1937,55 @@ ivi_layout_surface_create(struct weston_surface *wl_surface, wl_list_insert(&layout->surface_list, &ivisurf->link); - wl_signal_emit(&layout->surface_notification.created, ivisurf); + return ivisurf; +} + +void +ivi_layout_desktop_surface_configure(struct ivi_layout_surface *ivisurf, + int32_t width, int32_t height) +{ + struct ivi_layout *layout = get_instance(); + + /* emit callback which is set by ivi-layout api user */ + wl_signal_emit(&layout->surface_notification.configure_desktop_changed, + ivisurf); +} + +struct ivi_layout_surface* +ivi_layout_desktop_surface_create(struct weston_surface *wl_surface, + uint32_t id_surface) +{ + return surface_create(wl_surface, id_surface); +} + +void +ivi_layout_surface_configure(struct ivi_layout_surface *ivisurf, + int32_t width, int32_t height) +{ + struct ivi_layout *layout = get_instance(); + + /* emit callback which is set by ivi-layout api user */ + wl_signal_emit(&layout->surface_notification.configure_changed, + ivisurf); +} + +struct ivi_layout_surface* +ivi_layout_surface_create(struct weston_surface *wl_surface, + uint32_t id_surface) +{ + struct ivi_layout *layout = get_instance(); + struct ivi_layout_surface *ivisurf = NULL; + + ivisurf = get_surface(&layout->surface_list, id_surface); + if (ivisurf) { + weston_log("id_surface(%d) is already created\n", id_surface); + return NULL; + } + + ivisurf = surface_create(wl_surface, id_surface); + + if (ivisurf) + wl_signal_emit(&layout->surface_notification.created, ivisurf); return ivisurf; } -- 2.7.4 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel