summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/shell.c28
1 files changed, 21 insertions, 7 deletions
diff --git a/src/shell.c b/src/shell.c
index ac41e1f..f969503 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -45,15 +45,11 @@
static void
create_black_surface_view(struct ivi_output *output);
-void
-ivi_set_desktop_surface(struct ivi_surface *surface)
+static void
+agl_shell_desktop_advertise_application_id(struct ivi_compositor *ivi,
+ struct ivi_surface *surface)
{
struct desktop_client *dclient;
- struct ivi_compositor *ivi = surface->ivi;
- assert(surface->role == IVI_SURFACE_ROLE_NONE);
-
- surface->role = IVI_SURFACE_ROLE_DESKTOP;
- wl_list_insert(&surface->ivi->surfaces, &surface->link);
/* advertise to all desktop clients the new surface */
wl_list_for_each(dclient, &ivi->desktop_clients, link) {
@@ -63,6 +59,18 @@ ivi_set_desktop_surface(struct ivi_surface *surface)
}
}
+void
+ivi_set_desktop_surface(struct ivi_surface *surface)
+{
+ struct ivi_compositor *ivi = surface->ivi;
+ assert(surface->role == IVI_SURFACE_ROLE_NONE);
+
+ surface->role = IVI_SURFACE_ROLE_DESKTOP;
+ wl_list_insert(&surface->ivi->surfaces, &surface->link);
+
+ agl_shell_desktop_advertise_application_id(ivi, surface);
+}
+
static void
ivi_set_desktop_surface_popup(struct ivi_surface *surface)
{
@@ -71,6 +79,8 @@ ivi_set_desktop_surface_popup(struct ivi_surface *surface)
surface->role = IVI_SURFACE_ROLE_POPUP;
wl_list_insert(&ivi->surfaces, &surface->link);
+
+ agl_shell_desktop_advertise_application_id(ivi, surface);
}
static void
@@ -81,6 +91,8 @@ ivi_set_desktop_surface_fullscreen(struct ivi_surface *surface)
surface->role = IVI_SURFACE_ROLE_FULLSCREEN;
wl_list_insert(&ivi->surfaces, &surface->link);
+
+ agl_shell_desktop_advertise_application_id(ivi, surface);
}
static void
@@ -119,6 +131,8 @@ ivi_set_desktop_surface_split(struct ivi_surface *surface)
surface->role = IVI_SURFACE_ROLE_SPLIT_H;
wl_list_insert(&ivi->surfaces, &surface->link);
+
+ agl_shell_desktop_advertise_application_id(ivi, surface);
}
static void