weston_view_update_transform(view);
}
+ if (output_has_black_curtain(output)) {
+ if (!output->background) {
+ weston_log("Found that we have no background surface "
+ "for output %s. Using black curtain as background\n",
+ output->output->name);
+
+ struct weston_view *ev =
+ output->fullscreen_view.fs->view;
+
+ /* use the black curtain as background when we have
+ * none added by the shell client. */
+ weston_layer_entry_remove(&ev->layer_link);
+ weston_layer_entry_insert(&ivi->normal.view_list,
+ &ev->layer_link);
+ weston_view_geometry_dirty(ev);
+ weston_surface_damage(ev->surface);
+ } else {
+ remove_black_curtain(output);
+ }
+ }
+
+
weston_view_set_output(view, woutput);
weston_view_set_position(view,
woutput->x + output->area.x,
}
output->previous_active = output->active;
output->active = surf;
+ surf->current_completed_output = output;
weston_layer_entry_insert(&ivi->normal.view_list, &view->layer_link);
weston_view_geometry_dirty(view);
app_id, ivi_layout_get_surface_role_name(surf),
ivi_output->area.width, ivi_output->area.height);
+ surf->hidden_layer_output = ivi_output;
weston_view_set_output(ev, ivi_output->output);
weston_layer_entry_insert(&ivi->hidden.view_list, &ev->layer_link);
- weston_log("Placed app_id %s, type %s in hidden layer\n",
- app_id, ivi_layout_get_surface_role_name(surf));
+ weston_log("Placed app_id %s, type %s in hidden layer on output %s\n",
+ app_id, ivi_layout_get_surface_role_name(surf),
+ ivi_output->output->name);
+
+ weston_compositor_schedule_repaint(ivi->compositor);
+ return;
}
+
+ /* we might have another output to activate */
+ if (surf->hidden_layer_output &&
+ surf->hidden_layer_output != ivi_output) {
+ weston_layer_entry_remove(&ev->layer_link);
+
+ if (ivi_output->area.width != surf->hidden_layer_output->area.width &&
+ ivi_output->area.height != surf->hidden_layer_output->area.height) {
+ weston_desktop_surface_set_maximized(dsurf, true);
+ weston_desktop_surface_set_size(dsurf,
+ ivi_output->area.width,
+ ivi_output->area.height);
+ }
+
+ weston_log("Setting app_id %s, role %s, set to maximized (%dx%d)\n",
+ app_id, ivi_layout_get_surface_role_name(surf),
+ ivi_output->area.width, ivi_output->area.height);
+
+ surf->hidden_layer_output = ivi_output;
+ weston_view_set_output(ev, ivi_output->output);
+ weston_layer_entry_insert(&ivi->hidden.view_list, &ev->layer_link);
+ weston_log("Placed app_id %s, type %s in hidden layer on output %s\n",
+ app_id, ivi_layout_get_surface_role_name(surf),
+ ivi_output->output->name);
+ }
+
+ weston_compositor_schedule_repaint(ivi->compositor);
}
void
if (r_output) {
struct weston_view *view = r_output->fullscreen_view.fs->view;
if (view->is_mapped || view->surface->is_mapped)
- remove_black_surface(r_output);
+ remove_black_curtain(r_output);
}