static void
create_black_surface_view(struct ivi_output *output);
-static void
+void
agl_shell_desktop_advertise_application_id(struct ivi_compositor *ivi,
struct ivi_surface *surface)
{
struct desktop_client *dclient;
+ if (surface->advertised_on_launch)
+ return;
+
/* advertise to all desktop clients the new surface */
wl_list_for_each(dclient, &ivi->desktop_clients, link) {
const char *app_id =
weston_desktop_surface_get_app_id(surface->dsurface);
+ if (app_id == NULL) {
+ weston_log("WARNING app_is is null, unable to advertise\n");
+ return;
+ }
agl_shell_desktop_send_application(dclient->resource, app_id);
+ surface->advertised_on_launch = true;
}
}
wl_list_for_each(surface, &ivi->surfaces, link) {
const char *app_id =
weston_desktop_surface_get_app_id(surface->dsurface);
+ if (app_id == NULL) {
+ weston_log("WARNING app_is is null, unable to advertise\n");
+ return;
+ }
agl_shell_desktop_send_application(resource, app_id);
}
}
struct weston_compositor *wc= ivi->compositor;
struct weston_output *woutput = output->output;
+ if (!woutput)
+ return;
+
surface = weston_surface_create(wc);
view = weston_view_create(surface);
{
struct weston_view *view;
- if (!output &&
+ if ((!output &&
!output->fullscreen_view.fs &&
- !output->fullscreen_view.fs->view) {
+ !output->fullscreen_view.fs->view) || !output->output) {
weston_log("Output %s doesn't have a surface installed!\n", output->name);
return;
}
if (!surf)
return;
+ if (!app_id)
+ return;
+
if (policy && policy->api.surface_advertise_state_change &&
!policy->api.surface_advertise_state_change(surf, surf->ivi)) {
return;