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 <eucan@de.adit-jv.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
diff --git a/ivi-shell/hmi-controller.c b/ivi-shell/hmi-controller.c
index 0b932d6..e8fcf13 100644
--- a/ivi-shell/hmi-controller.c
+++ b/ivi-shell/hmi-controller.c
@@ -915,14 +915,10 @@
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 @@
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);