ivi-shell: fix the layer assignment change from one screen to another

if the layer is in order of some screen we need to remove it
from there and mark the screen order as dirty so it will be removed
in commit_screen_list call later
layer should only be assigned to one screen at a time

Signed-off-by: Eugen Friedrich <efriedrich@de.adit-jv.com>
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
dev
Emre Ucan 7 years ago committed by Pekka Paalanen
parent 40d67c2862
commit e8ff7df863
  1. 5
      ivi-shell/ivi-layout.c

@ -1538,6 +1538,11 @@ ivi_layout_screen_add_layer(struct weston_output *output,
iviscrn = get_screen_from_output(output); iviscrn = get_screen_from_output(output);
/*if layer is already assigned to screen make order of it dirty
* we are going to remove it (in commit_screen_list)*/
if (addlayer->on_screen)
addlayer->on_screen->order.dirty = 1;
wl_list_remove(&addlayer->pending.link); wl_list_remove(&addlayer->pending.link);
wl_list_insert(&iviscrn->pending.layer_list, &addlayer->pending.link); wl_list_insert(&iviscrn->pending.layer_list, &addlayer->pending.link);

Loading…
Cancel
Save