summaryrefslogtreecommitdiffstats
path: root/src/desktop.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/desktop.c')
-rw-r--r--src/desktop.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/desktop.c b/src/desktop.c
index 37f4222..f28d0c9 100644
--- a/src/desktop.c
+++ b/src/desktop.c
@@ -366,10 +366,15 @@ 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) {
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);
+ }
+
wl_list_remove(&surface->link);
free(surface);
@@ -396,6 +401,13 @@ desktop_committed(struct weston_desktop_surface *dsurface,
wl_list_init(&surface->link);
ivi_check_pending_desktop_surface(surface);
surface->checked_pending = true;
+
+ /* 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);
}
if (!surface->advertised_on_launch &&