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>
dev
Ucan, Emre (ADITG/SW1) 9 years ago committed by Pekka Paalanen
parent aab1d36883
commit 783cb4dcfe
  1. 17
      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);

Loading…
Cancel
Save