+
+ <request name="set_app_float" since="6">
+ <description summary="set the window identified by app_id as float">
+ Makes the application identified by app_id as floating. If the
+ application's window is already mapped, in a maximized, normal state,
+ it would transition to the float state.
+
+ For applications that want to modify their own state, this request
+ must be done before the initial surface commit in order to take effect.
+
+ If the application is already in floating state, this request wouldn't
+ do anything.
+
+ There's no persistence of this request, once the application terminated
+ you'll to issue this request again for that particular app_id.
+
+ The x, and y values would be initial position of the window where the
+ window surface will be placed.
+
+ 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="x" type="int" summary="x position"/>
+ <arg name="y" type="int" summary="y position"/>
+ </request>
+
+ <request name="set_app_normal" since="6">
+ <description summary="set the window identified by app_id as normally started">
+ Returns the application identified by app_id as it was in the normal state.
+ This is useful to come back from other states to the maximized state, the
+ normal state applications are started.
+ </description>
+ <arg name="app_id" type="string"/>
+ </request>
+
+ <request name="set_app_fullscreen" since="7">
+ <description summary="">
+ Makes the application identified by app_id as fullscreen. If the
+ application's window is already mapped, in a maximized, normal state,
+ it would transition to the fullscreen state.
+
+ For applications that want to modify their own state, this request
+ must be done before the initial surface commit in order to take effect.
+
+ If the application is already in fullscreen state, this request wouldn't
+ do anything.
+
+ There's no persistence of this request, once the application terminated
+ you'll to issue this request again for that particular app_id.
+
+ 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>
+
+ <request name="set_app_output" since="8">
+ <description summary="Assign an application to a particular output">
+ This would allow the compositor to place an application on a particular
+ output, if that output is indeed available. This can happen before
+ application is started which would make the application start on that
+ particular output. If the application is already started it would
+ move the application to that output.
+
+ There's no persistence of this request, once the application terminated
+ you'll need to issue this request again for that particular app_id.
+
+ 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="output" type="object" interface="wl_output"/>
+ </request>
+
+ <event name="app_on_output" since="8">
+ <description summary="Event sent as a reponse to set_app_output">
+ Clients can use this event to be notified when an application
+ wants to be displayed on a certain output. This event is sent in
+ response to the set_app_output request.
+
+ 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="output_name" type="string"/>
+ </event>