diff options
author | Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> | 2015-12-09 15:45:20 +0900 |
---|---|---|
committer | Pekka Paalanen <pekka.paalanen@collabora.co.uk> | 2015-12-14 13:16:11 +0200 |
commit | a7ffa68e700c17fe5723ce1ec6a2a3b31586d6b3 (patch) | |
tree | fbc845722e002fe89f005fc6c29f1644272685da | |
parent | d156d9c4cf19c56fa72bdde011d11875414a6c10 (diff) | |
download | weston-a7ffa68e700c17fe5723ce1ec6a2a3b31586d6b3.tar.gz |
ivi-shell: hmi-controller supports multi screens at fullscreen mode.
It shows ivi applications in fullscreen per screen like,
The first screen: Application 1,4,5,6,,,,
The seconed screen: Application 2,
The third screen: Application 3
Thie mode assigns one application to each screen at first. And remaind
applications more than screens will be assigned to the first screen.
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-rw-r--r-- | ivi-shell/hmi-controller.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/ivi-shell/hmi-controller.c b/ivi-shell/hmi-controller.c index 55e70fb7..9b69dd20 100644 --- a/ivi-shell/hmi-controller.c +++ b/ivi-shell/hmi-controller.c @@ -367,6 +367,10 @@ mode_fullscreen_someone(struct hmi_controller *hmi_ctrl, struct ivi_layout_surface *ivisurf = NULL; int32_t i = 0; const uint32_t duration = hmi_ctrl->hmi_setting->transition_duration; + int32_t surf_num = 0; + struct ivi_layout_surface **surfaces; + + surfaces = MEM_ALLOC(sizeof(*surfaces) * surface_length); for (i = 0; i < surface_length; i++) { ivisurf = pp_surface[i]; @@ -375,6 +379,18 @@ mode_fullscreen_someone(struct hmi_controller *hmi_ctrl, if (is_surf_in_ui_widget(hmi_ctrl, ivisurf)) continue; + surfaces[surf_num++] = ivisurf; + } + ivi_layout_interface->layer_set_render_order(layer->ivilayer, surfaces, surf_num); + + for (i = 0; i < surf_num; i++) { + ivisurf = surfaces[i]; + + if ((i > 0) && (i < hmi_ctrl->screen_num)) { + layer = wl_container_of(layer->link.prev, layer, link); + ivi_layout_interface->layer_set_render_order(layer->ivilayer, &ivisurf, 1); + } + ivi_layout_interface->surface_set_transition(ivisurf, IVI_LAYOUT_TRANSITION_VIEW_DEFAULT, duration); @@ -383,6 +399,8 @@ mode_fullscreen_someone(struct hmi_controller *hmi_ctrl, surface_width, surface_height); } + + free(surfaces); } static void |