X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fshell.c;h=cbe1252d0d3e743aa8609befc648f5b5dcb53104;hb=refs%2Fheads%2Fneedlefish;hp=dc07c269f8fb4d4b2d2ad00b5d84285ac308dcc1;hpb=baf8a28e6329fdb6cdfb943925849d2cb6347730;p=src%2Fagl-compositor.git diff --git a/src/shell.c b/src/shell.c index dc07c26..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) { @@ -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); }