diff options
author | Marius Vlad <marius.vlad@collabora.com> | 2023-04-21 14:38:32 +0300 |
---|---|---|
committer | Marius Vlad <marius.vlad@collabora.com> | 2023-05-03 18:46:19 +0300 |
commit | d5d2af73456fbaac69084bbd04838fcc1aed71a9 (patch) | |
tree | 68518e8b6dcc12f9dc1b2caab8e820b29ff4c0a8 | |
parent | b80044887e97509433eb19945ce8feab68151044 (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.c | 10 |
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; |