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 <marius.vlad@collabora.com>
Change-Id: I4762af1ba6e8708722385ac06c37486dd4b6aac1
return;
if (ivi->shell_client.ready && !surface->checked_pending) {
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);
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;
ivi_check_pending_desktop_surface(surface);
surface->checked_pending = true;