shell: Add the ability to dynamically move application window 24/28724/3
authorMarius Vlad <marius.vlad@collabora.com>
Wed, 26 Apr 2023 06:48:40 +0000 (09:48 +0300)
committerMarius Vlad <marius.vlad@collabora.com>
Wed, 3 May 2023 15:46:19 +0000 (18:46 +0300)
commit0fef26d32431e7bea6413f886e79cd2c1d88eb7c
treee8c30853f8ad9caa749aeb1dc4be18a9d3fc0aa5
parent998097db427c6aeb61e62cd6cf7ad3821e7d0372
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
src/desktop.c
src/ivi-compositor.h
src/layout.c
src/shell.c