shell: Introduce fullscreen and split role type of a surface
[src/agl-compositor.git] / protocol / agl-shell-desktop.xml
index 28b2756..9ef4cca 100644 (file)
     <enum name="app_role">
       <entry name="popup" value="0"/>
       <entry name="fullscreen" value="1"/>
+      <entry name="split_vertical" value="2"/>
+      <entry name="split_horizontal" value="3"/>
+    </enum>
+
+    <enum name="app_state">
+      <entry name="activated" value="0"/>
+      <entry name="deactivated" value="1"/>
     </enum>
 
     <event name="application">
@@ -58,6 +65,7 @@
         description of app_id.
       </description>
       <arg name="app_id" type="string"/>
+      <arg name="app_data" type="string" allow-null="true"/>
       <arg name="output" type="object" interface="wl_output"/>
     </request>
 
       <arg name="y" type="int"/>
       <arg name="output" type="object" interface="wl_output"/>
     </request>
+
+    <request name="deactivate_app">
+      <description summary="de-activate/hide window identified by app_id">
+        Ask the compositor to hide the toplevel window for window
+        management purposes. Depending on the window role, this request
+        will either display the previously active window (or the background
+        in case there's no previously activate surface) or temporarly (or
+        until a 'activate_app' is called upon) hide the surface. All
+        the surfaces are identifiable by using the app_id, and no actions are
+        taken in case the app_id is not/was not present.
+
+        See xdg_toplevel.set_app_id from the xdg-shell protocol for a
+        description of app_id.
+      </description>
+      <arg name="app_id" type="string"/>
+    </request>
+
+    <event name="state_app">
+      <description summary="event sent when application has suffered state modification">
+        Notifies application(s) when other application have suffered state modifications.
+      </description>
+      <arg name="app_id" type="string"/>
+      <arg name="app_data" type="string" allow-null="true"/>
+      <arg name="state" type="uint" enum="app_state"/>
+      <arg name="role" type="uint" enum="app_role"/>
+    </event>
+
   </interface>
 </protocol>