}
weston_view_set_output(view, woutput);
- weston_view_set_position(view,
- woutput->x + output->area.x,
- woutput->y + output->area.y);
+
+ if (surf->role != IVI_SURFACE_ROLE_BACKGROUND)
+ weston_view_set_position(view,
+ woutput->x + output->area.x,
+ woutput->y + output->area.y);
view->is_mapped = true;
surf->mapped = true;
view->surface->is_mapped = true;
if (output->active) {
- output->active->view->is_mapped = false;
- output->active->view->surface->is_mapped = false;
+ /* keep the background surface mapped at all times */
+ if (output->active->role != IVI_SURFACE_ROLE_BACKGROUND) {
+ output->active->view->is_mapped = false;
+ output->active->view->surface->is_mapped = false;
- weston_layer_entry_remove(&output->active->view->layer_link);
+ weston_layer_entry_remove(&output->active->view->layer_link);
+ }
}
output->previous_active = output->active;
output->active = surf;
return;
}
+ /* the background surface is already "maximized" so we don't need to
+ * add to the hidden layer */
+ if (surf->role == IVI_SURFACE_ROLE_BACKGROUND) {
+ ivi_layout_activate_complete(output, surf);
+ return;
+ }
+
ivi_layout_add_to_hidden_layer(surf, output);
}