summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Vlad <marius.vlad@collabora.com>2023-04-21 14:38:32 +0300
committerMarius Vlad <marius.vlad@collabora.com>2023-05-03 18:46:19 +0300
commitd5d2af73456fbaac69084bbd04838fcc1aed71a9 (patch)
tree68518e8b6dcc12f9dc1b2caab8e820b29ff4c0a8
parentb80044887e97509433eb19945ce8feab68151044 (diff)
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 <marius.vlad@collabora.com> Change-Id: I4762af1ba6e8708722385ac06c37486dd4b6aac1
-rw-r--r--src/desktop.c10
1 files changed, 9 insertions, 1 deletions
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;