diff options
author | Marius Vlad <marius.vlad@collabora.com> | 2022-08-03 18:37:09 +0300 |
---|---|---|
committer | Marius Vlad <marius.vlad@collabora.com> | 2022-08-03 19:34:26 +0300 |
commit | 2197dcceaa4b223602f4a7b3de664ae844786460 (patch) | |
tree | 7208c7f83744dff0e70c6c9d2495396dcdc55159 | |
parent | fc0b8bbf09c85c44bd2cc48d939e280b6c6f6ef7 (diff) |
agl-shell: Add an explicit set_app_splitsandbox/mvlad/agl-shell-v3-move-out-agl-shell-desktop
While libweston does have tiled orientation support, we can't really
control from the client itself, just the shell can do that. This patchs
adds a new request which can tell how to position different clients.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-rw-r--r-- | protocol/agl-shell.xml | 47 |
1 files changed, 46 insertions, 1 deletions
diff --git a/protocol/agl-shell.xml b/protocol/agl-shell.xml index 6d0d693..544556b 100644 --- a/protocol/agl-shell.xml +++ b/protocol/agl-shell.xml @@ -22,7 +22,7 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. </copyright> - <interface name="agl_shell" version="5"> + <interface name="agl_shell" version="6"> <description summary="user interface for Automotive Grade Linux platform"> Starting with version 2 of the protocol, the client is required to wait for the 'bound_ok' or 'bound_fail' events in order to proceed further. @@ -71,9 +71,18 @@ <entry name="destroyed" value="3"/> </enum> + <enum name="split_orientation" since="6"> + <entry name="none" value="0"/> + <entry name="top" value="1"/> + <entry name="bottom" value="2"/> + <entry name="left" value="3"/> + <entry name="right" value="4"/> + </enum> + <enum name="app_role" since="4"> <entry name="float" value="0"/> <entry name="remote" value="1"/> + <entry name="split" value="2" since="6"/> </enum> <request name="ready"> @@ -267,5 +276,41 @@ <arg name="permanent" type="uint"/> </request> + <request name="set_app_split" since="6"> + <description summary="set the application split"> + Request changes the application from the original mode (whatever that + might be) to a split, tiled orientation mode defined in the orientation + split_orientation enum. This request only handles a single level of + orientation for practical reasons. + + If there's no app_id with the supplied name this request does nothing. + + A none orientation type would make the window go back to the original + maximized mode. This implies that either the background surface will + displayed or in case there are more than one applications being + shown, the other application will be returned to the original, + maximized state. + + The tiled orientation could be applied independently of each other, + such that a client can transition from one tiled orientation to + another. Any other window already present would switch places with + the currently one being changed. + + In case there's already a client that's already active at that time, + it will be attributed automatically the opposite tiled orientation, + such that two concurrent applications can be displayed at the same + time. + + The orientation tiles can not be combined, and only state at a time + can be active, which means we can't have a top left orientation, or + any combination like that. + + See xdg_toplevel.set_app_id from the xdg-shell protocol for a + description of app_id. + </description> + <arg name="app_id" type="string"/> + <arg name="orientation" type="uint" enum="split_orientation"/> + </request> + </interface> </protocol> |