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 <[email protected]>
---
 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 86f7c50..2ea0744 100644
--- a/ivi-shell/hmi-controller.c
+++ b/ivi-shell/hmi-controller.c
@@ -925,14 +925,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;
 
@@ -940,7 +936,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);
-- 
1.7.9.5

_______________________________________________
wayland-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to