index 68ca68ba..c86cbb11 100644 --- a/ivi-shell/ivi-layout-shell.h +++ b/ivi-shell/ivi-layout-shell.h @@ -39,6 +39,14 @@ struct weston_view; 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 690af742..086d0fd2 100644 --- a/ivi-shell/ivi-layout.c +++ b/ivi-shell/ivi-layout.c @@ -1995,20 +1995,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; @@ -2018,14 +2006,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"); @@ -2049,7 +2029,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; }