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>
This commit is contained in:
committed by
Pekka Paalanen
parent
d156d9c4cf
commit
a7ffa68e70
@@ -367,6 +367,10 @@ mode_fullscreen_someone(struct hmi_controller *hmi_ctrl,
|
|||||||
struct ivi_layout_surface *ivisurf = NULL;
|
struct ivi_layout_surface *ivisurf = NULL;
|
||||||
int32_t i = 0;
|
int32_t i = 0;
|
||||||
const uint32_t duration = hmi_ctrl->hmi_setting->transition_duration;
|
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++) {
|
for (i = 0; i < surface_length; i++) {
|
||||||
ivisurf = pp_surface[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))
|
if (is_surf_in_ui_widget(hmi_ctrl, ivisurf))
|
||||||
continue;
|
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_interface->surface_set_transition(ivisurf,
|
||||||
IVI_LAYOUT_TRANSITION_VIEW_DEFAULT,
|
IVI_LAYOUT_TRANSITION_VIEW_DEFAULT,
|
||||||
duration);
|
duration);
|
||||||
@@ -383,6 +399,8 @@ mode_fullscreen_someone(struct hmi_controller *hmi_ctrl,
|
|||||||
surface_width,
|
surface_width,
|
||||||
surface_height);
|
surface_height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
free(surfaces);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|||||||
Reference in New Issue
Block a user