From 63b6b6b1e140e0abb3bcc6b706ba7a57b5fceb04 Mon Sep 17 00:00:00 2001 From: Marius Vlad Date: Thu, 23 Apr 2020 15:55:34 +0300 Subject: shell: Display previously pending surface once the ready request was received Surfaces are being added to linked list of pending surfaces as long as the 'ready' request wasn't received, and are being categorized as regular apps once the 'ready' request is handled. But, in order to display it, the surface has to be activated. With this patch we force to display/show the last pending surface that was added before issueing a 'ready' request. Obviously, multiple surfaces of this kind will be displayed, but only the last one will remain displayed on the output, hence the refernce of just the last pending surface. A particular use-case that will benifit from this is when for instance the launcher application is started before homescreen. When homescreen starts it will also activate/display the launcher surface. Bug-AGL: SPEC-3341 Signed-off-by: Marius Vlad Change-Id: Iace641c3b65d0c5500fe336e592d2e8ada57d7e9 --- src/shell.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/shell.c b/src/shell.c index cc7b33b..0f2e644 100644 --- a/src/shell.c +++ b/src/shell.c @@ -307,7 +307,13 @@ shell_ready(struct wl_client *client, struct wl_resource *shell_res) wl_list_for_each_safe(surface, tmp, &ivi->pending_surfaces, link) { wl_list_remove(&surface->link); - ivi_set_desktop_surface(surface); + + if (ivi_check_pending_desktop_surface_popup(surface)) { + ivi_set_desktop_surface_popup(surface); + } else { + ivi_set_desktop_surface(surface); + ivi_layout_desktop_committed(surface); + } } } -- cgit 1.2.3-korg