X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fdesktop.c;h=0f1da18bb1c0d8f07b94301668df93f110e2b398;hb=76fa1b83638310c23bf3ca952e4479499b8ecb43;hp=f28d0c9dc9f0e3289b8892009a57f582ee2a6555;hpb=0512e7251611e7040c550bb4c6cc972d57b45144;p=src%2Fagl-compositor.git diff --git a/src/desktop.c b/src/desktop.c index f28d0c9..0f1da18 100644 --- a/src/desktop.c +++ b/src/desktop.c @@ -289,8 +289,9 @@ desktop_surface_removed(struct weston_desktop_surface *dsurface, void *userdata) * the DESKTOP role can happen here as well, because we can fall-back * to that when we try to determine the role type. Application that * do not set the app_id will be land here, when destroyed */ - if (output == NULL && (surface->role == IVI_SURFACE_ROLE_NONE || - surface->role == IVI_SURFACE_ROLE_DESKTOP)) + if ((output == NULL && (surface->role == IVI_SURFACE_ROLE_NONE || + surface->role == IVI_SURFACE_ROLE_DESKTOP)) || + output->output == NULL) goto skip_output_asignment; assert(output != NULL); @@ -366,13 +367,11 @@ skip_output_asignment: weston_log("Removed surface %p, app_id %s, role %s\n", surface, app_id, ivi_layout_get_surface_role_name(surface)); - if (app_id && output) { + if (app_id && output && output->output) { shell_advertise_app_state(output->ivi, app_id, NULL, AGL_SHELL_DESKTOP_APP_STATE_DESTROYED); - - if (wl_resource_get_version(output->ivi->shell_client.resource) >= AGL_SHELL_APP_STATE_SINCE_VERSION) - agl_shell_send_app_state(output->ivi->shell_client.resource, - app_id, AGL_SHELL_APP_STATE_TERMINATED); + if (output->ivi->shell_client.ready) + shell_send_app_state(output->ivi, app_id, AGL_SHELL_APP_STATE_TERMINATED); } wl_list_remove(&surface->link); @@ -405,9 +404,7 @@ desktop_committed(struct weston_desktop_surface *dsurface, /* we'll do it now at commit time, because we might not have an * appid by the time we've created the weston_desktop_surface * */ - if (wl_resource_get_version(ivi->shell_client.resource) >= AGL_SHELL_APP_STATE_SINCE_VERSION) - agl_shell_send_app_state(ivi->shell_client.resource, - app_id, AGL_SHELL_APP_STATE_STARTED); + shell_send_app_state(ivi, app_id, AGL_SHELL_APP_STATE_STARTED); } if (!surface->advertised_on_launch &&