X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fshell.c;h=cbe1252d0d3e743aa8609befc648f5b5dcb53104;hb=refs%2Fheads%2Fneedlefish;hp=33a7a72ec6ab34037f52bfef34deec0bc93fdbb2;hpb=c859ca5a97d53a00c43c15dfcd2c39c095be896e;p=src%2Fagl-compositor.git diff --git a/src/shell.c b/src/shell.c index 33a7a72..cbe1252 100644 --- a/src/shell.c +++ b/src/shell.c @@ -87,6 +87,16 @@ ivi_set_desktop_surface(struct ivi_surface *surface) agl_shell_desktop_advertise_application_id(ivi, surface); } +static void +ivi_set_background_surface(struct ivi_surface *surface) +{ + struct ivi_compositor *ivi = surface->ivi; + assert(surface->role == IVI_SURFACE_ROLE_BACKGROUND); + + 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) { @@ -467,7 +477,7 @@ ivi_set_pending_desktop_surface_remote(struct ivi_output *ioutput, if (!p_remote) return; - wl_list_insert(&ivi->remote_pending_apps, &remote->link); + wl_list_insert(&ivi->remote_pending_apps, &p_remote->link); } @@ -1024,8 +1034,14 @@ shell_ready(struct wl_client *client, struct wl_resource *shell_res) ivi->shell_client.ready = true; wl_list_for_each(output, &ivi->outputs, link) { - if (output->background) + if (output->background && + output->background->role == IVI_SURFACE_ROLE_BACKGROUND) { + /* track the background surface role as a "regular" + * surface so we can activate it */ + ivi_set_background_surface(output->background); remove_black_surface(output); + } + ivi_layout_init(ivi, output); }