ivi-shell: add_screen_remove_layer API
It is analagous to layer_remove_surface API. The API removes a layer from the render order of the screen. v3: add the new vfunc at the end of the ivi_layout_interface struct. Signed-off-by: Emre Ucan <eucan@de.adit-jv.com> Reviewed-by: Eugen Friedrich <friedrix@gmail.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
This commit is contained in:
committed by
Pekka Paalanen
parent
3e5303daf4
commit
deee858b0b
@@ -578,6 +578,16 @@ struct ivi_layout_interface {
|
|||||||
*/
|
*/
|
||||||
struct ivi_layout_surface *
|
struct ivi_layout_surface *
|
||||||
(*get_surface)(struct weston_surface *surface);
|
(*get_surface)(struct weston_surface *surface);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Remove a ivi_layer to a weston_output which is currently managed
|
||||||
|
* by the service
|
||||||
|
*
|
||||||
|
* \return IVI_SUCCEEDED if the method call was successful
|
||||||
|
* \return IVI_FAILED if the method call was failed
|
||||||
|
*/
|
||||||
|
int32_t (*screen_remove_layer)(struct weston_output *output,
|
||||||
|
struct ivi_layout_layer *removelayer);
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|||||||
@@ -1663,6 +1663,27 @@ ivi_layout_screen_add_layer(struct weston_output *output,
|
|||||||
return IVI_SUCCEEDED;
|
return IVI_SUCCEEDED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int32_t
|
||||||
|
ivi_layout_screen_remove_layer(struct weston_output *output,
|
||||||
|
struct ivi_layout_layer *removelayer)
|
||||||
|
{
|
||||||
|
struct ivi_layout_screen *iviscrn;
|
||||||
|
|
||||||
|
if (output == NULL || removelayer == NULL) {
|
||||||
|
weston_log("ivi_layout_screen_remove_layer: invalid argument\n");
|
||||||
|
return IVI_FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
|
iviscrn = get_screen_from_output(output);
|
||||||
|
|
||||||
|
wl_list_remove(&removelayer->pending.link);
|
||||||
|
wl_list_init(&removelayer->pending.link);
|
||||||
|
|
||||||
|
iviscrn->order.dirty = 1;
|
||||||
|
|
||||||
|
return IVI_SUCCEEDED;
|
||||||
|
}
|
||||||
|
|
||||||
static int32_t
|
static int32_t
|
||||||
ivi_layout_screen_set_render_order(struct weston_output *output,
|
ivi_layout_screen_set_render_order(struct weston_output *output,
|
||||||
struct ivi_layout_layer **pLayer,
|
struct ivi_layout_layer **pLayer,
|
||||||
@@ -2088,6 +2109,7 @@ static struct ivi_layout_interface ivi_layout_interface = {
|
|||||||
*/
|
*/
|
||||||
.get_screens_under_layer = ivi_layout_get_screens_under_layer,
|
.get_screens_under_layer = ivi_layout_get_screens_under_layer,
|
||||||
.screen_add_layer = ivi_layout_screen_add_layer,
|
.screen_add_layer = ivi_layout_screen_add_layer,
|
||||||
|
.screen_remove_layer = ivi_layout_screen_remove_layer,
|
||||||
.screen_set_render_order = ivi_layout_screen_set_render_order,
|
.screen_set_render_order = ivi_layout_screen_set_render_order,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user