Héctor Orón Martínez pushed to branch upstream-unstable at X Strike Force / wayland / wayland-protocols
Commits:
-
18032f66
by Johan Klokkhammer Helsing at 2018-07-31T10:53:03Z
-
19ec5dcc
by Alexandros Frantzis at 2018-11-12T14:32:54Z
-
2c3b11d7
by emersion at 2018-11-12T15:56:50Z
-
9132fc86
by Jonas Ådahl at 2018-11-12T15:59:01Z
7 changed files:
- Makefile.am
- configure.ac
- unstable/fullscreen-shell/fullscreen-shell-unstable-v1.xml
- + unstable/linux-explicit-synchronization/README
- + unstable/linux-explicit-synchronization/linux-explicit-synchronization-unstable-v1.xml
- + unstable/primary-selection/README
- + unstable/primary-selection/primary-selection-unstable-v1.xml
Changes:
... | ... | @@ -21,6 +21,8 @@ unstable_protocols = \ |
21 | 21 |
unstable/xdg-output/xdg-output-unstable-v1.xml \
|
22 | 22 |
unstable/input-timestamps/input-timestamps-unstable-v1.xml \
|
23 | 23 |
unstable/xdg-decoration/xdg-decoration-unstable-v1.xml \
|
24 |
+ unstable/linux-explicit-synchronization/linux-explicit-synchronization-unstable-v1.xml \
|
|
25 |
+ unstable/primary-selection/primary-selection-unstable-v1.xml \
|
|
24 | 26 |
$(NULL)
|
25 | 27 |
|
26 | 28 |
stable_protocols = \
|
1 | 1 |
AC_PREREQ([2.64])
|
2 | 2 |
|
3 | 3 |
m4_define([wayland_protocols_major_version], [1])
|
4 |
-m4_define([wayland_protocols_minor_version], [16])
|
|
4 |
+m4_define([wayland_protocols_minor_version], [17])
|
|
5 | 5 |
m4_define([wayland_protocols_version],
|
6 | 6 |
[wayland_protocols_major_version.wayland_protocols_minor_version])
|
7 | 7 |
|
1 | 1 |
<?xml version="1.0" encoding="UTF-8"?>
|
2 | 2 |
<protocol name="fullscreen_shell_unstable_v1">
|
3 | 3 |
|
4 |
+ <copyright>
|
|
5 |
+ Copyright © 2016 Yong Bakos
|
|
6 |
+ Copyright © 2015 Jason Ekstrand
|
|
7 |
+ Copyright © 2015 Jonas Ådahl
|
|
8 |
+ |
|
9 |
+ Permission is hereby granted, free of charge, to any person obtaining a
|
|
10 |
+ copy of this software and associated documentation files (the "Software"),
|
|
11 |
+ to deal in the Software without restriction, including without limitation
|
|
12 |
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
13 |
+ and/or sell copies of the Software, and to permit persons to whom the
|
|
14 |
+ Software is furnished to do so, subject to the following conditions:
|
|
15 |
+ |
|
16 |
+ The above copyright notice and this permission notice (including the next
|
|
17 |
+ paragraph) shall be included in all copies or substantial portions of the
|
|
18 |
+ Software.
|
|
19 |
+ |
|
20 |
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21 |
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22 |
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
23 |
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24 |
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
25 |
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
26 |
+ DEALINGS IN THE SOFTWARE.
|
|
27 |
+ </copyright>
|
|
28 |
+ |
|
4 | 29 |
<interface name="zwp_fullscreen_shell_v1" version="1">
|
5 | 30 |
<description summary="displays a single surface per output">
|
6 | 31 |
Displays a single surface per output.
|
1 |
+Linux explicit synchronization (dma-fence) protocol
|
|
2 |
+ |
|
3 |
+Maintainers:
|
|
4 |
+Daniel Stone <daniels@collabora.com>
|
|
5 |
+Alexandros Frantzis <alexandros.frantzis@collabora.com>
|
1 |
+<?xml version="1.0" encoding="UTF-8"?>
|
|
2 |
+<protocol name="zwp_linux_explicit_synchronization_unstable_v1">
|
|
3 |
+ |
|
4 |
+ <copyright>
|
|
5 |
+ Copyright 2016 The Chromium Authors.
|
|
6 |
+ Copyright 2017 Intel Corporation
|
|
7 |
+ Copyright 2018 Collabora, Ltd
|
|
8 |
+ |
|
9 |
+ Permission is hereby granted, free of charge, to any person obtaining a
|
|
10 |
+ copy of this software and associated documentation files (the "Software"),
|
|
11 |
+ to deal in the Software without restriction, including without limitation
|
|
12 |
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
13 |
+ and/or sell copies of the Software, and to permit persons to whom the
|
|
14 |
+ Software is furnished to do so, subject to the following conditions:
|
|
15 |
+ |
|
16 |
+ The above copyright notice and this permission notice (including the next
|
|
17 |
+ paragraph) shall be included in all copies or substantial portions of the
|
|
18 |
+ Software.
|
|
19 |
+ |
|
20 |
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21 |
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22 |
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
23 |
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24 |
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
25 |
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
26 |
+ DEALINGS IN THE SOFTWARE.
|
|
27 |
+ </copyright>
|
|
28 |
+ |
|
29 |
+ <interface name="zwp_linux_explicit_synchronization_v1" version="1">
|
|
30 |
+ <description summary="protocol for providing explicit synchronization">
|
|
31 |
+ This global is a factory interface, allowing clients to request
|
|
32 |
+ explicit synchronization for buffers on a per-surface basis.
|
|
33 |
+ |
|
34 |
+ See zwp_linux_surface_synchronization_v1 for more information.
|
|
35 |
+ |
|
36 |
+ This interface is derived from Chromium's
|
|
37 |
+ zcr_linux_explicit_synchronization_v1.
|
|
38 |
+ |
|
39 |
+ Warning! The protocol described in this file is experimental and
|
|
40 |
+ backward incompatible changes may be made. Backward compatible changes
|
|
41 |
+ may be added together with the corresponding interface version bump.
|
|
42 |
+ Backward incompatible changes are done by bumping the version number in
|
|
43 |
+ the protocol and interface names and resetting the interface version.
|
|
44 |
+ Once the protocol is to be declared stable, the 'z' prefix and the
|
|
45 |
+ version number in the protocol and interface names are removed and the
|
|
46 |
+ interface version number is reset.
|
|
47 |
+ </description>
|
|
48 |
+ |
|
49 |
+ <request name="destroy" type="destructor">
|
|
50 |
+ <description summary="destroy explicit synchronization factory object">
|
|
51 |
+ Destroy this explicit synchronization factory object. Other objects,
|
|
52 |
+ including zwp_linux_surface_synchronization_v1 objects created by this
|
|
53 |
+ factory, shall not be affected by this request.
|
|
54 |
+ </description>
|
|
55 |
+ </request>
|
|
56 |
+ |
|
57 |
+ <enum name="error">
|
|
58 |
+ <entry name="synchronization_exists" value="0"
|
|
59 |
+ summary="the surface already has a synchronization object associated"/>
|
|
60 |
+ </enum>
|
|
61 |
+ |
|
62 |
+ <request name="get_synchronization">
|
|
63 |
+ <description summary="extend surface interface for explicit synchronization">
|
|
64 |
+ Instantiate an interface extension for the given wl_surface to provide
|
|
65 |
+ explicit synchronization.
|
|
66 |
+ |
|
67 |
+ If the given wl_surface already has an explicit synchronization object
|
|
68 |
+ associated, the synchronization_exists protocol error is raised.
|
|
69 |
+ </description>
|
|
70 |
+ |
|
71 |
+ <arg name="id" type="new_id"
|
|
72 |
+ interface="zwp_linux_surface_synchronization_v1"
|
|
73 |
+ summary="the new synchronization interface id"/>
|
|
74 |
+ <arg name="surface" type="object" interface="wl_surface"
|
|
75 |
+ summary="the surface"/>
|
|
76 |
+ </request>
|
|
77 |
+ </interface>
|
|
78 |
+ |
|
79 |
+ <interface name="zwp_linux_surface_synchronization_v1" version="1">
|
|
80 |
+ <description summary="per-surface explicit synchronization support">
|
|
81 |
+ This object implements per-surface explicit synchronization.
|
|
82 |
+ |
|
83 |
+ Synchronization refers to co-ordination of pipelined operations performed
|
|
84 |
+ on buffers. Most GPU clients will schedule an asynchronous operation to
|
|
85 |
+ render to the buffer, then immediately send the buffer to the compositor
|
|
86 |
+ to be attached to a surface.
|
|
87 |
+ |
|
88 |
+ In implicit synchronization, ensuring that the rendering operation is
|
|
89 |
+ complete before the compositor displays the buffer is an implementation
|
|
90 |
+ detail handled by either the kernel or userspace graphics driver.
|
|
91 |
+ |
|
92 |
+ By contrast, in explicit synchronization, dma_fence objects mark when the
|
|
93 |
+ asynchronous operations are complete. When submitting a buffer, the
|
|
94 |
+ client provides an acquire fence which will be waited on before the
|
|
95 |
+ compositor accesses the buffer. The Wayland server, through a
|
|
96 |
+ zwp_linux_buffer_release_v1 object, will inform the client with an event
|
|
97 |
+ which may be accompanied by a release fence, when the compositor will no
|
|
98 |
+ longer access the buffer contents due to the specific commit that
|
|
99 |
+ requested the release event.
|
|
100 |
+ |
|
101 |
+ Each surface can be associated with only one object of this interface at
|
|
102 |
+ any time.
|
|
103 |
+ |
|
104 |
+ Explicit synchronization is guaranteed to be supported only for buffers
|
|
105 |
+ created with any version of the wp_linux_dmabuf buffer factory.
|
|
106 |
+ </description>
|
|
107 |
+ |
|
108 |
+ <request name="destroy" type="destructor">
|
|
109 |
+ <description summary="destroy synchronization object">
|
|
110 |
+ Destroy this explicit synchronization object.
|
|
111 |
+ |
|
112 |
+ Any fence set by this object with set_acquire_fence since the last
|
|
113 |
+ commit will be discarded by the server. Any fences set by this object
|
|
114 |
+ before the last commit are not affected.
|
|
115 |
+ |
|
116 |
+ zwp_linux_buffer_release_v1 objects created by this object are not
|
|
117 |
+ affected by this request.
|
|
118 |
+ </description>
|
|
119 |
+ </request>
|
|
120 |
+ |
|
121 |
+ <enum name="error">
|
|
122 |
+ <entry name="invalid_fence" value="0"
|
|
123 |
+ summary="the fence specified by the client could not be imported"/>
|
|
124 |
+ <entry name="duplicate_fence" value="1"
|
|
125 |
+ summary="multiple fences added for a single surface commit"/>
|
|
126 |
+ <entry name="duplicate_release" value="2"
|
|
127 |
+ summary="multiple releases added for a single surface commit"/>
|
|
128 |
+ <entry name="no_surface" value="3"
|
|
129 |
+ summary="the associated wl_surface was destroyed"/>
|
|
130 |
+ <entry name="unsupported_buffer" value="4"
|
|
131 |
+ summary="the buffer does not support explicit synchronization"/>
|
|
132 |
+ <entry name="no_buffer" value="5"
|
|
133 |
+ summary="no buffer was attached"/>
|
|
134 |
+ </enum>
|
|
135 |
+ |
|
136 |
+ <request name="set_acquire_fence">
|
|
137 |
+ <description summary="set the acquire fence">
|
|
138 |
+ Set the acquire fence that must be signaled before the compositor
|
|
139 |
+ may sample from the buffer attached with wl_surface.attach. The fence
|
|
140 |
+ is a dma_fence kernel object.
|
|
141 |
+ |
|
142 |
+ The acquire fence is double-buffered state, and will be applied on the
|
|
143 |
+ next wl_surface.commit request for the associated surface. Thus, it
|
|
144 |
+ applies only to the buffer that is attached to the surface at commit
|
|
145 |
+ time.
|
|
146 |
+ |
|
147 |
+ If the provided fd is not a valid dma_fence fd, then an INVALID_FENCE
|
|
148 |
+ error is raised.
|
|
149 |
+ |
|
150 |
+ If a fence has already been attached during the same commit cycle, a
|
|
151 |
+ DUPLICATE_FENCE error is raised.
|
|
152 |
+ |
|
153 |
+ If the associated wl_surface was destroyed, a NO_SURFACE error is
|
|
154 |
+ raised.
|
|
155 |
+ |
|
156 |
+ If at surface commit time the attached buffer does not support explicit
|
|
157 |
+ synchronization, an UNSUPPORTED_BUFFER error is raised.
|
|
158 |
+ |
|
159 |
+ If at surface commit time there is no buffer attached, a NO_BUFFER
|
|
160 |
+ error is raised.
|
|
161 |
+ </description>
|
|
162 |
+ <arg name="fd" type="fd" summary="acquire fence fd"/>
|
|
163 |
+ </request>
|
|
164 |
+ |
|
165 |
+ <request name="get_release">
|
|
166 |
+ <description summary="release fence for last-attached buffer">
|
|
167 |
+ Create a listener for the release of the buffer attached by the
|
|
168 |
+ client with wl_surface.attach. See zwp_linux_buffer_release_v1
|
|
169 |
+ documentation for more information.
|
|
170 |
+ |
|
171 |
+ The release object is double-buffered state, and will be associated
|
|
172 |
+ with the buffer that is attached to the surface at wl_surface.commit
|
|
173 |
+ time.
|
|
174 |
+ |
|
175 |
+ If a zwp_linux_buffer_release_v1 object has already been requested for
|
|
176 |
+ the surface in the same commit cycle, a DUPLICATE_RELEASE error is
|
|
177 |
+ raised.
|
|
178 |
+ |
|
179 |
+ If the associated wl_surface was destroyed, a NO_SURFACE error
|
|
180 |
+ is raised.
|
|
181 |
+ |
|
182 |
+ If at surface commit time there is no buffer attached, a NO_BUFFER
|
|
183 |
+ error is raised.
|
|
184 |
+ </description>
|
|
185 |
+ <arg name="release" type="new_id" interface="zwp_linux_buffer_release_v1"
|
|
186 |
+ summary="new zwp_linux_buffer_release_v1 object"/>
|
|
187 |
+ </request>
|
|
188 |
+ </interface>
|
|
189 |
+ |
|
190 |
+ <interface name="zwp_linux_buffer_release_v1" version="1">
|
|
191 |
+ <description summary="buffer release explicit synchronization">
|
|
192 |
+ This object is instantiated in response to a
|
|
193 |
+ zwp_linux_surface_synchronization_v1.get_release request.
|
|
194 |
+ |
|
195 |
+ It provides an alternative to wl_buffer.release events, providing a
|
|
196 |
+ unique release from a single wl_surface.commit request. The release event
|
|
197 |
+ also supports explicit synchronization, providing a fence FD for the
|
|
198 |
+ client to synchronize against.
|
|
199 |
+ |
|
200 |
+ Exactly one event, either a fenced_release or an immediate_release, will
|
|
201 |
+ be emitted for the wl_surface.commit request. The compositor can choose
|
|
202 |
+ release by release which event it uses.
|
|
203 |
+ |
|
204 |
+ This event does not replace wl_buffer.release events; servers are still
|
|
205 |
+ required to send those events.
|
|
206 |
+ |
|
207 |
+ Once a buffer release object has delivered a 'fenced_release' or an
|
|
208 |
+ 'immediate_release' event it is automatically destroyed.
|
|
209 |
+ </description>
|
|
210 |
+ |
|
211 |
+ <event name="fenced_release">
|
|
212 |
+ <description summary="release buffer with fence">
|
|
213 |
+ Sent when the compositor has finalised its usage of the associated
|
|
214 |
+ buffer for the relevant commit, providing a dma_fence which will be
|
|
215 |
+ signaled when all operations by the compositor on that buffer for that
|
|
216 |
+ commit have finished.
|
|
217 |
+ |
|
218 |
+ This event destroys the zwp_linux_buffer_release_v1 object.
|
|
219 |
+ </description>
|
|
220 |
+ <arg name="fence" type="fd" summary="fence for last operation on buffer"/>
|
|
221 |
+ </event>
|
|
222 |
+ |
|
223 |
+ <event name="immediate_release">
|
|
224 |
+ <description summary="release buffer immediately">
|
|
225 |
+ Sent when the compositor has finalised its usage of the associated
|
|
226 |
+ buffer for the relevant commit, and either performed no operations
|
|
227 |
+ using it, or has a guarantee that all its operations on that buffer for
|
|
228 |
+ that commit have finished.
|
|
229 |
+ |
|
230 |
+ This event destroys the zwp_linux_buffer_release_v1 object.
|
|
231 |
+ </description>
|
|
232 |
+ </event>
|
|
233 |
+ </interface>
|
|
234 |
+ |
|
235 |
+</protocol>
|
1 |
+Primary selection protocol
|
|
2 |
+ |
|
3 |
+Maintainers:
|
|
4 |
+Simon Ser <contact@emersion.fr>
|
1 |
+<?xml version="1.0" encoding="UTF-8"?>
|
|
2 |
+<protocol name="wp_primary_selection_unstable_v1">
|
|
3 |
+ <copyright>
|
|
4 |
+ Copyright © 2015, 2016 Red Hat
|
|
5 |
+ |
|
6 |
+ Permission is hereby granted, free of charge, to any person obtaining a
|
|
7 |
+ copy of this software and associated documentation files (the "Software"),
|
|
8 |
+ to deal in the Software without restriction, including without limitation
|
|
9 |
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
10 |
+ and/or sell copies of the Software, and to permit persons to whom the
|
|
11 |
+ Software is furnished to do so, subject to the following conditions:
|
|
12 |
+ |
|
13 |
+ The above copyright notice and this permission notice (including the next
|
|
14 |
+ paragraph) shall be included in all copies or substantial portions of the
|
|
15 |
+ Software.
|
|
16 |
+ |
|
17 |
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18 |
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19 |
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
20 |
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21 |
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
22 |
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
23 |
+ DEALINGS IN THE SOFTWARE.
|
|
24 |
+ </copyright>
|
|
25 |
+ |
|
26 |
+ <description summary="Primary selection protocol">
|
|
27 |
+ This protocol provides the ability to have a primary selection device to
|
|
28 |
+ match that of the X server. This primary selection is a shortcut to the
|
|
29 |
+ common clipboard selection, where text just needs to be selected in order
|
|
30 |
+ to allow copying it elsewhere. The de facto way to perform this action
|
|
31 |
+ is the middle mouse button, although it is not limited to this one.
|
|
32 |
+ |
|
33 |
+ Clients wishing to honor primary selection should create a primary
|
|
34 |
+ selection source and set it as the selection through
|
|
35 |
+ wp_primary_selection_device.set_selection whenever the text selection
|
|
36 |
+ changes. In order to minimize calls in pointer-driven text selection,
|
|
37 |
+ it should happen only once after the operation finished. Similarly,
|
|
38 |
+ a NULL source should be set when text is unselected.
|
|
39 |
+ |
|
40 |
+ wp_primary_selection_offer objects are first announced through the
|
|
41 |
+ wp_primary_selection_device.data_offer event. Immediately after this event,
|
|
42 |
+ the primary data offer will emit wp_primary_selection_offer.offer events
|
|
43 |
+ to let know of the mime types being offered.
|
|
44 |
+ |
|
45 |
+ When the primary selection changes, the client with the keyboard focus
|
|
46 |
+ will receive wp_primary_selection_device.selection events. Only the client
|
|
47 |
+ with the keyboard focus will receive such events with a non-NULL
|
|
48 |
+ wp_primary_selection_offer. Across keyboard focus changes, previously
|
|
49 |
+ focused clients will receive wp_primary_selection_device.events with a
|
|
50 |
+ NULL wp_primary_selection_offer.
|
|
51 |
+ |
|
52 |
+ In order to request the primary selection data, the client must pass
|
|
53 |
+ a recent serial pertaining to the press event that is triggering the
|
|
54 |
+ operation, if the compositor deems the serial valid and recent, the
|
|
55 |
+ wp_primary_selection_source.send event will happen in the other end
|
|
56 |
+ to let the transfer begin. The client owning the primary selection
|
|
57 |
+ should write the requested data, and close the file descriptor
|
|
58 |
+ immediately.
|
|
59 |
+ |
|
60 |
+ If the primary selection owner client disappeared during the transfer,
|
|
61 |
+ the client reading the data will receive a
|
|
62 |
+ wp_primary_selection_device.selection event with a NULL
|
|
63 |
+ wp_primary_selection_offer, the client should take this as a hint
|
|
64 |
+ to finish the reads related to the no longer existing offer.
|
|
65 |
+ |
|
66 |
+ The primary selection owner should be checking for errors during
|
|
67 |
+ writes, merely cancelling the ongoing transfer if any happened.
|
|
68 |
+ </description>
|
|
69 |
+ |
|
70 |
+ <interface name="zwp_primary_selection_device_manager_v1" version="1">
|
|
71 |
+ <description summary="X primary selection emulation">
|
|
72 |
+ The primary selection device manager is a singleton global object that
|
|
73 |
+ provides access to the primary selection. It allows to create
|
|
74 |
+ wp_primary_selection_source objects, as well as retrieving the per-seat
|
|
75 |
+ wp_primary_selection_device objects.
|
|
76 |
+ </description>
|
|
77 |
+ |
|
78 |
+ <request name="create_source">
|
|
79 |
+ <description summary="create a new primary selection source">
|
|
80 |
+ Create a new primary selection source.
|
|
81 |
+ </description>
|
|
82 |
+ <arg name="id" type="new_id" interface="zwp_primary_selection_source_v1"/>
|
|
83 |
+ </request>
|
|
84 |
+ |
|
85 |
+ <request name="get_device">
|
|
86 |
+ <description summary="create a new primary selection device">
|
|
87 |
+ Create a new data device for a given seat.
|
|
88 |
+ </description>
|
|
89 |
+ <arg name="id" type="new_id" interface="zwp_primary_selection_device_v1"/>
|
|
90 |
+ <arg name="seat" type="object" interface="wl_seat"/>
|
|
91 |
+ </request>
|
|
92 |
+ |
|
93 |
+ <request name="destroy" type="destructor">
|
|
94 |
+ <description summary="destroy the primary selection device manager">
|
|
95 |
+ Destroy the primary selection device manager.
|
|
96 |
+ </description>
|
|
97 |
+ </request>
|
|
98 |
+ </interface>
|
|
99 |
+ |
|
100 |
+ <interface name="zwp_primary_selection_device_v1" version="1">
|
|
101 |
+ <request name="set_selection">
|
|
102 |
+ <description summary="set the primary selection">
|
|
103 |
+ Replaces the current selection. The previous owner of the primary
|
|
104 |
+ selection will receive a wp_primary_selection_source.cancelled event.
|
|
105 |
+ |
|
106 |
+ To unset the selection, set the source to NULL.
|
|
107 |
+ </description>
|
|
108 |
+ <arg name="source" type="object" interface="zwp_primary_selection_source_v1" allow-null="true"/>
|
|
109 |
+ <arg name="serial" type="uint" summary="serial of the event that triggered this request"/>
|
|
110 |
+ </request>
|
|
111 |
+ |
|
112 |
+ <event name="data_offer">
|
|
113 |
+ <description summary="introduce a new wp_primary_selection_offer">
|
|
114 |
+ Introduces a new wp_primary_selection_offer object that may be used
|
|
115 |
+ to receive the current primary selection. Immediately following this
|
|
116 |
+ event, the new wp_primary_selection_offer object will send
|
|
117 |
+ wp_primary_selection_offer.offer events to describe the offered mime
|
|
118 |
+ types.
|
|
119 |
+ </description>
|
|
120 |
+ <arg name="offer" type="new_id" interface="zwp_primary_selection_offer_v1"/>
|
|
121 |
+ </event>
|
|
122 |
+ |
|
123 |
+ <event name="selection">
|
|
124 |
+ <description summary="advertise a new primary selection">
|
|
125 |
+ The wp_primary_selection_device.selection event is sent to notify the
|
|
126 |
+ client of a new primary selection. This event is sent after the
|
|
127 |
+ wp_primary_selection.data_offer event introducing this object, and after
|
|
128 |
+ the offer has announced its mimetypes through
|
|
129 |
+ wp_primary_selection_offer.offer.
|
|
130 |
+ |
|
131 |
+ The data_offer is valid until a new offer or NULL is received
|
|
132 |
+ or until the client loses keyboard focus. The client must destroy the
|
|
133 |
+ previous selection data_offer, if any, upon receiving this event.
|
|
134 |
+ </description>
|
|
135 |
+ <arg name="id" type="object" interface="zwp_primary_selection_offer_v1" allow-null="true"/>
|
|
136 |
+ </event>
|
|
137 |
+ |
|
138 |
+ <request name="destroy" type="destructor">
|
|
139 |
+ <description summary="destroy the primary selection device">
|
|
140 |
+ Destroy the primary selection device.
|
|
141 |
+ </description>
|
|
142 |
+ </request>
|
|
143 |
+ </interface>
|
|
144 |
+ |
|
145 |
+ <interface name="zwp_primary_selection_offer_v1" version="1">
|
|
146 |
+ <description summary="offer to transfer primary selection contents">
|
|
147 |
+ A wp_primary_selection_offer represents an offer to transfer the contents
|
|
148 |
+ of the primary selection clipboard to the client. Similar to
|
|
149 |
+ wl_data_offer, the offer also describes the mime types that the data can
|
|
150 |
+ be converted to and provides the mechanisms for transferring the data
|
|
151 |
+ directly to the client.
|
|
152 |
+ </description>
|
|
153 |
+ |
|
154 |
+ <request name="receive">
|
|
155 |
+ <description summary="request that the data is transferred">
|
|
156 |
+ To transfer the contents of the primary selection clipboard, the client
|
|
157 |
+ issues this request and indicates the mime type that it wants to
|
|
158 |
+ receive. The transfer happens through the passed file descriptor
|
|
159 |
+ (typically created with the pipe system call). The source client writes
|
|
160 |
+ the data in the mime type representation requested and then closes the
|
|
161 |
+ file descriptor.
|
|
162 |
+ |
|
163 |
+ The receiving client reads from the read end of the pipe until EOF and
|
|
164 |
+ closes its end, at which point the transfer is complete.
|
|
165 |
+ </description>
|
|
166 |
+ <arg name="mime_type" type="string"/>
|
|
167 |
+ <arg name="fd" type="fd"/>
|
|
168 |
+ </request>
|
|
169 |
+ |
|
170 |
+ <request name="destroy" type="destructor">
|
|
171 |
+ <description summary="destroy the primary selection offer">
|
|
172 |
+ Destroy the primary selection offer.
|
|
173 |
+ </description>
|
|
174 |
+ </request>
|
|
175 |
+ |
|
176 |
+ <event name="offer">
|
|
177 |
+ <description summary="advertise offered mime type">
|
|
178 |
+ Sent immediately after creating announcing the
|
|
179 |
+ wp_primary_selection_offer through
|
|
180 |
+ wp_primary_selection_device.data_offer. One event is sent per offered
|
|
181 |
+ mime type.
|
|
182 |
+ </description>
|
|
183 |
+ <arg name="mime_type" type="string"/>
|
|
184 |
+ </event>
|
|
185 |
+ </interface>
|
|
186 |
+ |
|
187 |
+ <interface name="zwp_primary_selection_source_v1" version="1">
|
|
188 |
+ <description summary="offer to replace the contents of the primary selection">
|
|
189 |
+ The source side of a wp_primary_selection_offer, it provides a way to
|
|
190 |
+ describe the offered data and respond to requests to transfer the
|
|
191 |
+ requested contents of the primary selection clipboard.
|
|
192 |
+ </description>
|
|
193 |
+ |
|
194 |
+ <request name="offer">
|
|
195 |
+ <description summary="add an offered mime type">
|
|
196 |
+ This request adds a mime type to the set of mime types advertised to
|
|
197 |
+ targets. Can be called several times to offer multiple types.
|
|
198 |
+ </description>
|
|
199 |
+ <arg name="mime_type" type="string"/>
|
|
200 |
+ </request>
|
|
201 |
+ |
|
202 |
+ <request name="destroy" type="destructor">
|
|
203 |
+ <description summary="destroy the primary selection source">
|
|
204 |
+ Destroy the primary selection source.
|
|
205 |
+ </description>
|
|
206 |
+ </request>
|
|
207 |
+ |
|
208 |
+ <event name="send">
|
|
209 |
+ <description summary="send the primary selection contents">
|
|
210 |
+ Request for the current primary selection contents from the client.
|
|
211 |
+ Send the specified mime type over the passed file descriptor, then
|
|
212 |
+ close it.
|
|
213 |
+ </description>
|
|
214 |
+ <arg name="mime_type" type="string"/>
|
|
215 |
+ <arg name="fd" type="fd"/>
|
|
216 |
+ </event>
|
|
217 |
+ |
|
218 |
+ <event name="cancelled">
|
|
219 |
+ <description summary="request for primary selection contents was canceled">
|
|
220 |
+ This primary selection source is no longer valid. The client should
|
|
221 |
+ clean up and destroy this primary selection source.
|
|
222 |
+ </description>
|
|
223 |
+ </event>
|
|
224 |
+ </interface>
|
|
225 |
+</protocol>
|