Code Review
/
src
/
agl-compositor.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
shell: Avoid advertising applications without app_id set
[src/agl-compositor.git]
/
src
/
shell.c
diff --git
a/src/shell.c
b/src/shell.c
index
4886a0a
..
94fdb66
100644
(file)
--- 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);
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);
}
}
agl_shell_desktop_send_application(dclient->resource, app_id);
}
}
@@
-366,24
+370,28
@@
ivi_check_pending_desktop_surface(struct ivi_surface *surface)
ret = ivi_check_pending_desktop_surface_popup(surface);
if (ret) {
ivi_set_desktop_surface_popup(surface);
ret = ivi_check_pending_desktop_surface_popup(surface);
if (ret) {
ivi_set_desktop_surface_popup(surface);
+ ivi_layout_popup_committed(surface);
return;
}
ret = ivi_check_pending_desktop_surface_split(surface);
if (ret) {
ivi_set_desktop_surface_split(surface);
return;
}
ret = ivi_check_pending_desktop_surface_split(surface);
if (ret) {
ivi_set_desktop_surface_split(surface);
+ ivi_layout_split_committed(surface);
return;
}
ret = ivi_check_pending_desktop_surface_fullscreen(surface);
if (ret) {
ivi_set_desktop_surface_fullscreen(surface);
return;
}
ret = ivi_check_pending_desktop_surface_fullscreen(surface);
if (ret) {
ivi_set_desktop_surface_fullscreen(surface);
+ ivi_layout_fullscreen_committed(surface);
return;
}
ret = ivi_check_pending_desktop_surface_remote(surface);
if (ret) {
ivi_set_desktop_surface_remote(surface);
return;
}
ret = ivi_check_pending_desktop_surface_remote(surface);
if (ret) {
ivi_set_desktop_surface_remote(surface);
+ ivi_layout_desktop_committed(surface);
return;
}
return;
}
@@
-438,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);
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);
}
}
agl_shell_desktop_send_application(resource, app_id);
}
}
@@
-789,8
+801,7
@@
shell_set_panel(struct wl_client *client,
weston_desktop_surface_set_size(dsurface, width, height);
}
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)
{
shell_advertise_app_state(struct ivi_compositor *ivi, const char *app_id,
const char *data, uint32_t app_state)
{
@@
-804,6
+815,9
@@
shell_advertise_app_state(struct ivi_compositor *ivi, const char *app_id,
if (!surf)
return;
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;
if (policy && policy->api.surface_advertise_state_change &&
!policy->api.surface_advertise_state_change(surf, surf->ivi)) {
return;