diff options
author | 2023-04-26 09:48:40 +0300 | |
---|---|---|
committer | 2023-05-03 18:46:19 +0300 | |
commit | 0fef26d32431e7bea6413f886e79cd2c1d88eb7c (patch) | |
tree | e8c30853f8ad9caa749aeb1dc4be18a9d3fc0aa5 /src/layout.c | |
parent | 998097db427c6aeb61e62cd6cf7ad3821e7d0372 (diff) |
shell: Add the ability to dynamically move application window
So far, we could start an application on a different output, but
moving them back-and-worth wasn't really supported. This handles
a few use-cases like:
- move an application's window from one output to another
- install black curtain in case we no longer have any other surfaces
on that output;
- deactivate and switch to the previous active window in case there's
one available
- the activation is handled by the shell client, while deactivation
is done implicitly by the compositor to simplify the shell client
This does a bit of rewording of a function that returns true whenever
we have only a single application window on a particular output.
Bug-AGL: SPEC-4673
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I58cde58c6a2e2dade93566bfd7aff5ed697f5450
Diffstat (limited to 'src/layout.c')
-rw-r--r-- | src/layout.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/layout.c b/src/layout.c index b7ef788..ea293ca 100644 --- a/src/layout.c +++ b/src/layout.c @@ -1116,7 +1116,8 @@ ivi_layout_deactivate(struct ivi_compositor *ivi, const char *app_id) weston_log("Deactiving %s, role %s\n", app_id, ivi_layout_get_surface_role_name(surf)); - if (surf->role == IVI_SURFACE_ROLE_DESKTOP) { + if (surf->role == IVI_SURFACE_ROLE_DESKTOP || + surf->role == IVI_SURFACE_ROLE_REMOTE) { struct ivi_surface *previous_active; previous_active = ivi_output->previous_active; |