From 783cb4dcfef5eb0822460107e6d9eff0bd2e2f7c Mon Sep 17 00:00:00 2001 From: "Ucan, Emre (ADITG/SW1)" Date: Thu, 17 Mar 2016 14:36:51 +0000 Subject: [PATCH] hmi-controller: fix wrong background surface size In current implementation, the size of the first application layer is used for the background image of a display. This is wrong because: 1. The background surface should be fullscreen. 2. Each display could have different resolution. We should use the size of the base layer of each display for the background image. Signed-off-by: Emre Ucan Reviewed-by: Pekka Paalanen --- ivi-shell/hmi-controller.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/ivi-shell/hmi-controller.c b/ivi-shell/hmi-controller.c index 0b932d621..e8fcf137c 100644 --- a/ivi-shell/hmi-controller.c +++ b/ivi-shell/hmi-controller.c @@ -915,14 +915,10 @@ ivi_hmi_controller_set_background(struct hmi_controller *hmi_ctrl, struct ivi_layout_surface *ivisurf = NULL; struct hmi_controller_layer *base_layer = NULL; struct ivi_layout_layer *ivilayer = NULL; - struct hmi_controller_layer *application_layer = - wl_container_of(hmi_ctrl->application_layer_list.prev, - application_layer, - link); - const int32_t dstx = application_layer->x; - const int32_t dsty = application_layer->y; - const int32_t width = application_layer->width; - const int32_t height = application_layer->height; + int32_t dstx; + int32_t dsty; + int32_t width; + int32_t height; int32_t ret = 0; int32_t i = 0; @@ -930,7 +926,10 @@ ivi_hmi_controller_set_background(struct hmi_controller *hmi_ctrl, uint32_t *add_surface_id = wl_array_add(&hmi_ctrl->ui_widgets, sizeof(*add_surface_id)); *add_surface_id = id_surface + (i * hmi_ctrl->ui_setting.surface_id_offset); - + dstx = base_layer->x; + dsty = base_layer->y; + width = base_layer->width; + height = base_layer->height; ivilayer = base_layer->ivilayer; ivisurf = ivi_layout_interface->get_surface_from_id(*add_surface_id);