summaryrefslogtreecommitdiffstats
path: root/src/layout.c
diff options
context:
space:
mode:
authorMarius Vlad <marius.vlad@collabora.com>2023-04-26 09:48:40 +0300
committerMarius Vlad <marius.vlad@collabora.com>2023-05-03 18:46:19 +0300
commit0fef26d32431e7bea6413f886e79cd2c1d88eb7c (patch)
treee8c30853f8ad9caa749aeb1dc4be18a9d3fc0aa5 /src/layout.c
parent998097db427c6aeb61e62cd6cf7ad3821e7d0372 (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.c3
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;