summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Lozano <walter.lozano@collabora.com>2020-10-08 14:07:55 -0300
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2020-10-15 09:33:47 +0000
commitabe3abc327b7d770b81f976d79f12112010e6a4e (patch)
treef64d174bfc661188ff12bd746e0ae700ab4b27ef
parent51a77a42b4003d25fbf8193ae6122fd95fd1489a (diff)
shell: Avoid advertising applications without app_id set
When using GTK-3 to create apps, the framework issues set_parent_id which forces a surface to be added even before the app_id is set. This causes the compositor to try to advertise an invalid app_id. This patch avoids advertising an app which has no app_id set. Signed-off-by: Walter Lozano <walter.lozano@collabora.com> Change-Id: Iadcea106e6464b41171a2aa92aa0eed3a8e2ff2d
-rw-r--r--src/shell.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/shell.c b/src/shell.c
index c884f16..94fdb66 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -55,6 +55,10 @@ agl_shell_desktop_advertise_application_id(struct ivi_compositor *ivi,
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);
}
}
@@ -442,6 +446,10 @@ ivi_shell_advertise_xdg_surfaces(struct ivi_compositor *ivi, struct wl_resource
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);
}
}
@@ -807,6 +815,9 @@ shell_advertise_app_state(struct ivi_compositor *ivi, const char *app_id,
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;