summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ivi-compositor.h4
-rw-r--r--src/layout.c21
-rw-r--r--src/shell.c3
3 files changed, 26 insertions, 2 deletions
diff --git a/src/ivi-compositor.h b/src/ivi-compositor.h
index 7b5c18f..79b2255 100644
--- a/src/ivi-compositor.h
+++ b/src/ivi-compositor.h
@@ -371,4 +371,8 @@ ivi_set_pending_desktop_surface_remote(struct ivi_output *ioutput,
struct ivi_output *
ivi_layout_find_with_app_id(const char *app_id, struct ivi_compositor *ivi);
+void
+shell_advertise_app_state(struct ivi_compositor *ivi, const char *app_id,
+ const char *data, uint32_t app_state);
+
#endif
diff --git a/src/layout.c b/src/layout.c
index c078ac9..d8d0196 100644
--- a/src/layout.c
+++ b/src/layout.c
@@ -370,6 +370,7 @@ ivi_layout_fullscreen_committed(struct ivi_surface *surface)
struct weston_desktop_surface *dsurface = surface->dsurface;
struct weston_surface *wsurface =
weston_desktop_surface_get_surface(dsurface);
+ const char *app_id = weston_desktop_surface_get_app_id(dsurface);
struct ivi_output *output = surface->split.output;
struct weston_output *woutput = output->output;
@@ -397,6 +398,12 @@ ivi_layout_fullscreen_committed(struct ivi_surface *surface)
wsurface->is_mapped = true;
surface->view->is_mapped = true;
+
+ shell_advertise_app_state(ivi, app_id,
+ NULL, AGL_SHELL_DESKTOP_APP_STATE_ACTIVATED);
+
+ weston_log("Activation completed for app_id %s, role %s, output %s\n",
+ app_id, ivi_layout_get_surface_role_name(surface), output->name);
}
void
@@ -427,6 +434,7 @@ ivi_layout_split_committed(struct ivi_surface *surface)
struct weston_desktop_surface *dsurface = surface->dsurface;
struct weston_surface *wsurface =
weston_desktop_surface_get_surface(dsurface);
+ const char *app_id = weston_desktop_surface_get_app_id(dsurface);
struct ivi_output *output = surface->split.output;
struct weston_output *woutput = output->output;
@@ -502,6 +510,12 @@ ivi_layout_split_committed(struct ivi_surface *surface)
wsurface->is_mapped = true;
surface->view->is_mapped = true;
+
+ shell_advertise_app_state(ivi, app_id,
+ NULL, AGL_SHELL_DESKTOP_APP_STATE_ACTIVATED);
+
+ weston_log("Activation completed for app_id %s, role %s, output %s\n",
+ app_id, ivi_layout_get_surface_role_name(surface), output->name);
}
void
@@ -512,6 +526,7 @@ ivi_layout_popup_committed(struct ivi_surface *surface)
struct weston_desktop_surface *dsurface = surface->dsurface;
struct weston_surface *wsurface =
weston_desktop_surface_get_surface(dsurface);
+ const char *app_id = weston_desktop_surface_get_app_id(dsurface);
struct ivi_output *output = surface->popup.output;
struct weston_output *woutput = output->output;
@@ -540,6 +555,12 @@ ivi_layout_popup_committed(struct ivi_surface *surface)
wsurface->is_mapped = true;
surface->view->is_mapped = true;
+
+ shell_advertise_app_state(ivi, app_id,
+ NULL, AGL_SHELL_DESKTOP_APP_STATE_ACTIVATED);
+
+ weston_log("Activation completed for app_id %s, role %s, output %s\n",
+ app_id, ivi_layout_get_surface_role_name(surface), output->name);
}
static void
diff --git a/src/shell.c b/src/shell.c
index 2978cc3..c884f16 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -793,8 +793,7 @@ shell_set_panel(struct wl_client *client,
weston_desktop_surface_set_size(dsurface, width, height);
}
-
-static void
+void
shell_advertise_app_state(struct ivi_compositor *ivi, const char *app_id,
const char *data, uint32_t app_state)
{