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-05 08:56:42 +0000 |
commit | 0badf718dbe59d6211e4626c26113d639c6f28de (patch) | |
tree | d2ec8139eab66867f3113ef69946bd83d0577484 | |
parent | 42e787290b5067d85f1c04a4c44969fa0cae27d6 (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 eb0dc8a..0f72794 100644 --- a/src/desktop.c +++ b/src/desktop.c @@ -393,11 +393,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; |