server_decoration protocol
org_kde_kwin_server_decoration_manager interface version 1
This interface allows to coordinate whether the server should create
a server-side window decoration around a wl_surface representing a
shell surface (wl_shell_surface or similar). By announcing support
for this interface the server indicates that it supports server
side decorations.
Use in conjunction with zxdg_decoration_manager_v1 is undefined.
Requests
create
since version 0
create(id new_id[org_kde_kwin_server_decoration], surface object[wl_surface])
When a client creates a server-side decoration object it indicates
that it supports the protocol. The client is supposed to tell the
server whether it wants server-side decorations or will provide
client-side decorations.
If the client does not create a server-side decoration object for
a surface the server interprets this as lack of support for this
protocol and considers it as client-side decorated. Nevertheless a
client-side decorated surface should use this protocol to indicate
to the server that it does not want a server-side deco.
Arguments
|
Name
|
Type
|
Description
|
| id |
new_id[org_kde_kwin_server_decoration] |
|
| surface |
object[wl_surface] |
|
Events
default_mode
since version 0
default_mode(mode uint)
This event is emitted directly after binding the interface. It contains
the default mode for the decoration. When a new server decoration object
is created this new object will be in the default mode until the first
request_mode is requested.
The server may change the default mode at any time.
Arguments
|
Name
|
Type
|
Description
|
| mode |
uint |
The default decoration mode applied to newly created server decorations. |
Enums
mode since version 0
enum mode {
None = 0,
Client = 1,
Server = 2,
}
Entries
|
Name
|
Value
|
Description
|
| None |
0 |
Undecorated: The surface is not decorated at all, neither server nor client-side. An example is a popup surface which should not be decorated. |
| Client |
1 |
Client-side decoration: The decoration is part of the surface and the client. |
| Server |
2 |
Server-side decoration: The server embeds the surface into a decoration frame. |
org_kde_kwin_server_decoration interface version 1
Requests
release
(destructor)
since version 0
~release()
request_mode
since version 0
request_mode(mode uint)
Arguments
|
Name
|
Type
|
Description
|
| mode |
uint |
The mode this surface wants to use. |
Events
mode
since version 0
mode(mode uint)
This event is emitted directly after the decoration is created and
represents the base decoration policy by the server. E.g. a server
which wants all surfaces to be client-side decorated will send Client,
a server which wants server-side decoration will send Server.
The client can request a different mode through the decoration request.
The server will acknowledge this by another event with the same mode. So
even if a server prefers server-side decoration it's possible to force a
client-side decoration.
The server may emit this event at any time. In this case the client can
again request a different mode. It's the responsibility of the server to
prevent a feedback loop.
Arguments
|
Name
|
Type
|
Description
|
| mode |
uint |
The decoration mode applied to the surface by the server. |
Enums
mode since version 0
enum mode {
None = 0,
Client = 1,
Server = 2,
}
Entries
|
Name
|
Value
|
Description
|
| None |
0 |
Undecorated: The surface is not decorated at all, neither server nor client-side. An example is a popup surface which should not be decorated. |
| Client |
1 |
Client-side decoration: The decoration is part of the surface and the client. |
| Server |
2 |
Server-side decoration: The server embeds the surface into a decoration frame. |
SPDX-FileCopyrightText: 2015 Martin Gräßlin
SPDX-License-Identifier: LGPL-2.1-or-later