summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Vlad <marius.vlad@collabora.com>2022-08-03 18:37:09 +0300
committerMarius Vlad <marius.vlad@collabora.com>2022-08-03 19:34:26 +0300
commit2197dcceaa4b223602f4a7b3de664ae844786460 (patch)
tree7208c7f83744dff0e70c6c9d2495396dcdc55159
parentfc0b8bbf09c85c44bd2cc48d939e280b6c6f6ef7 (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.xml47
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>