server-decoration.xml RawHistoryFolder
1<?xml version="1.0" encoding="UTF-8"?>
2<protocol name="server_decoration">
3 <copyright><![CDATA[
4 SPDX-FileCopyrightText: 2015 Martin Gräßlin
5
6 SPDX-License-Identifier: LGPL-2.1-or-later
7 ]]></copyright>
8 <interface name="org_kde_kwin_server_decoration_manager" version="1">
9 <description summary="Server side window decoration manager">
10 This interface allows to coordinate whether the server should create
11 a server-side window decoration around a wl_surface representing a
12 shell surface (wl_shell_surface or similar). By announcing support
13 for this interface the server indicates that it supports server
14 side decorations.
15
16 Use in conjunction with zxdg_decoration_manager_v1 is undefined.
17 </description>
18 <request name="create">
19 <description summary="Create a server-side decoration object for a given surface">
20 When a client creates a server-side decoration object it indicates
21 that it supports the protocol. The client is supposed to tell the
22 server whether it wants server-side decorations or will provide
23 client-side decorations.
24
25 If the client does not create a server-side decoration object for
26 a surface the server interprets this as lack of support for this
27 protocol and considers it as client-side decorated. Nevertheless a
28 client-side decorated surface should use this protocol to indicate
29 to the server that it does not want a server-side deco.
30 </description>
31 <arg name="id" type="new_id" interface="org_kde_kwin_server_decoration"/>
32 <arg name="surface" type="object" interface="wl_surface"/>
33 </request>
34 <enum name="mode">
35 <description summary="Possible values to use in request_mode and the event mode."/>
36 <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."/>
37 <entry name="Client" value="1" summary="Client-side decoration: The decoration is part of the surface and the client."/>
38 <entry name="Server" value="2" summary="Server-side decoration: The server embeds the surface into a decoration frame."/>
39 </enum>
40 <event name="default_mode">
41 <description summary="The default mode used on the server">
42 This event is emitted directly after binding the interface. It contains
43 the default mode for the decoration. When a new server decoration object
44 is created this new object will be in the default mode until the first
45 request_mode is requested.
46
47 The server may change the default mode at any time.
48 </description>
49 <arg name="mode" type="uint" summary="The default decoration mode applied to newly created server decorations."/>
50 </event>
51 </interface>
52 <interface name="org_kde_kwin_server_decoration" version="1">
53 <request name="release" type="destructor">
54 <description summary="release the server decoration object"/>
55 </request>
56 <enum name="mode">
57 <description summary="Possible values to use in request_mode and the event mode."/>
58 <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."/>
59 <entry name="Client" value="1" summary="Client-side decoration: The decoration is part of the surface and the client."/>
60 <entry name="Server" value="2" summary="Server-side decoration: The server embeds the surface into a decoration frame."/>
61 </enum>
62 <request name="request_mode">
63 <description summary="The decoration mode the surface wants to use."/>
64 <arg name="mode" type="uint" summary="The mode this surface wants to use."/>
65 </request>
66 <event name="mode">
67 <description summary="The new decoration mode applied by the server">
68 This event is emitted directly after the decoration is created and
69 represents the base decoration policy by the server. E.g. a server
70 which wants all surfaces to be client-side decorated will send Client,
71 a server which wants server-side decoration will send Server.
72
73 The client can request a different mode through the decoration request.
74 The server will acknowledge this by another event with the same mode. So
75 even if a server prefers server-side decoration it's possible to force a
76 client-side decoration.
77
78 The server may emit this event at any time. In this case the client can
79 again request a different mode. It's the responsibility of the server to
80 prevent a feedback loop.
81 </description>
82 <arg name="mode" type="uint" summary="The decoration mode applied to the surface by the server."/>
83 </event>
84 </interface>
85</protocol>