From d5d2af73456fbaac69084bbd04838fcc1aed71a9 Mon Sep 17 00:00:00 2001 From: Marius Vlad Date: Fri, 21 Apr 2023 14:38:32 +0300 Subject: [PATCH] desktop: Look for app_ids after the initial commit Some applications, set up their app_ids after the initial surface commit, which is too late to move them/place them to a different output. This addresses that in the case the application sets one up, after the initial surface commit. Bug-AGL: SPEC-4759 Signed-off-by: Marius Vlad Change-Id: I4762af1ba6e8708722385ac06c37486dd4b6aac1 --- src/desktop.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/desktop.c b/src/desktop.c index 54eac5b..a8e6171 100644 --- a/src/desktop.c +++ b/src/desktop.c @@ -395,11 +395,19 @@ desktop_committed(struct weston_desktop_surface *dsurface, return; if (ivi->shell_client.ready && !surface->checked_pending) { - const char * app_id = weston_desktop_surface_get_app_id(dsurface); + struct ivi_output *remote_output = NULL; + const char *app_id = weston_desktop_surface_get_app_id(dsurface); weston_log("Checking pending surface %p, app_id %s\n", surface, app_id); wl_list_remove(&surface->link); wl_list_init(&surface->link); + + if ((remote_output = ivi_layout_find_with_app_id(app_id, ivi))) { + ivi_set_pending_desktop_surface_remote(remote_output, app_id); + shell_send_app_on_output(ivi, app_id, remote_output->output->name); + } + + ivi_check_pending_desktop_surface(surface); surface->checked_pending = true; -- 2.16.6