aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Vlad <marius.vlad@collabora.com>2020-04-23 15:55:34 +0300
committerMarius Vlad <marius.vlad@collabora.com>2020-05-11 08:18:32 +0000
commit63b6b6b1e140e0abb3bcc6b706ba7a57b5fceb04 (patch)
tree9123ed5016b192d542fba07ca81519ea99d2bfe5
parent225415dcbada40cabc9bcaa5974ed5436c58b0e0 (diff)
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 <marius.vlad@collabora.com> Change-Id: Iace641c3b65d0c5500fe336e592d2e8ada57d7e9
-rw-r--r--src/shell.c8
1 files changed, 7 insertions, 1 deletions
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);
+ }
}
}