org-kde-kwin-server-decoration-manager.xml (5664B)
1 <?xml version="1.0" encoding="UTF-8"?> 2 <protocol name="server_decoration"> 3 <copyright><![CDATA[ 4 Copyright (C) 2015 Martin Gräßlin 5 6 This program is free software: you can redistribute it and/or modify 7 it under the terms of the GNU Lesser General Public License as published by 8 the Free Software Foundation, either version 2.1 of the License, or 9 (at your option) any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU Lesser General Public License for more details. 15 16 You should have received a copy of the GNU Lesser General Public License 17 along with this program. If not, see <http://www.gnu.org/licenses/>. 18 ]]></copyright> 19 <interface name="org_kde_kwin_server_decoration_manager" version="1"> 20 <description summary="Server side window decoration manager"> 21 This interface allows to coordinate whether the server should create 22 a server-side window decoration around a wl_surface representing a 23 shell surface (wl_shell_surface or similar). By announcing support 24 for this interface the server indicates that it supports server 25 side decorations. 26 </description> 27 <request name="create"> 28 <description summary="Create a server-side decoration object for a given surface"> 29 When a client creates a server-side decoration object it indicates 30 that it supports the protocol. The client is supposed to tell the 31 server whether it wants server-side decorations or will provide 32 client-side decorations. 33 34 If the client does not create a server-side decoration object for 35 a surface the server interprets this as lack of support for this 36 protocol and considers it as client-side decorated. Nevertheless a 37 client-side decorated surface should use this protocol to indicate 38 to the server that it does not want a server-side deco. 39 </description> 40 <arg name="id" type="new_id" interface="org_kde_kwin_server_decoration"/> 41 <arg name="surface" type="object" interface="wl_surface"/> 42 </request> 43 <enum name="mode"> 44 <description summary="Possible values to use in request_mode and the event mode."/> 45 <entry name="None" value="0" summary="Undecorated: The surface is not decorated at all, neither server nor client-side. An example is a popup surface which should not be decorated."/> 46 <entry name="Client" value="1" summary="Client-side decoration: The decoration is part of the surface and the client."/> 47 <entry name="Server" value="2" summary="Server-side decoration: The server embeds the surface into a decoration frame."/> 48 </enum> 49 <event name="default_mode"> 50 <description summary="The default mode used on the server"> 51 This event is emitted directly after binding the interface. It contains 52 the default mode for the decoration. When a new server decoration object 53 is created this new object will be in the default mode until the first 54 request_mode is requested. 55 56 The server may change the default mode at any time. 57 </description> 58 <arg name="mode" type="uint" summary="The default decoration mode applied to newly created server decorations."/> 59 </event> 60 </interface> 61 <interface name="org_kde_kwin_server_decoration" version="1"> 62 <request name="release" type="destructor"> 63 <description summary="release the server decoration object"/> 64 </request> 65 <enum name="mode"> 66 <description summary="Possible values to use in request_mode and the event mode."/> 67 <entry name="None" value="0" summary="Undecorated: The surface is not decorated at all, neither server nor client-side. An example is a popup surface which should not be decorated."/> 68 <entry name="Client" value="1" summary="Client-side decoration: The decoration is part of the surface and the client."/> 69 <entry name="Server" value="2" summary="Server-side decoration: The server embeds the surface into a decoration frame."/> 70 </enum> 71 <request name="request_mode"> 72 <description summary="The decoration mode the surface wants to use."/> 73 <arg name="mode" type="uint" summary="The mode this surface wants to use."/> 74 </request> 75 <event name="mode"> 76 <description summary="The new decoration mode applied by the server"> 77 This event is emitted directly after the decoration is created and 78 represents the base decoration policy by the server. E.g. a server 79 which wants all surfaces to be client-side decorated will send Client, 80 a server which wants server-side decoration will send Server. 81 82 The client can request a different mode through the decoration request. 83 The server will acknowledge this by another event with the same mode. So 84 even if a server prefers server-side decoration it's possible to force a 85 client-side decoration. 86 87 The server may emit this event at any time. In this case the client can 88 again request a different mode. It's the responsibility of the server to 89 prevent a feedback loop. 90 </description> 91 <arg name="mode" type="uint" summary="The decoration mode applied to the surface by the server."/> 92 </event> 93 </interface> 94 </protocol>