Mercurial > minori
comparison dep/animia/data/ext-foreign-toplevel-list-v1.xml @ 199:9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
| author | Paper <mrpapersonic@gmail.com> |
|---|---|
| date | Tue, 02 Jan 2024 02:34:27 -0500 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 198:bc1ae1810855 | 199:9f3534f6b8c4 |
|---|---|
| 1 <?xml version="1.0" encoding="UTF-8"?> | |
| 2 <protocol name="ext_foreign_toplevel_list_v1"> | |
| 3 <copyright> | |
| 4 Copyright © 2018 Ilia Bozhinov | |
| 5 Copyright © 2020 Isaac Freund | |
| 6 Copyright © 2022 wb9688 | |
| 7 Copyright © 2023 i509VCB | |
| 8 | |
| 9 Permission to use, copy, modify, distribute, and sell this | |
| 10 software and its documentation for any purpose is hereby granted | |
| 11 without fee, provided that the above copyright notice appear in | |
| 12 all copies and that both that copyright notice and this permission | |
| 13 notice appear in supporting documentation, and that the name of | |
| 14 the copyright holders not be used in advertising or publicity | |
| 15 pertaining to distribution of the software without specific, | |
| 16 written prior permission. The copyright holders make no | |
| 17 representations about the suitability of this software for any | |
| 18 purpose. It is provided "as is" without express or implied | |
| 19 warranty. | |
| 20 | |
| 21 THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS | |
| 22 SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND | |
| 23 FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY | |
| 24 SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
| 25 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN | |
| 26 AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, | |
| 27 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF | |
| 28 THIS SOFTWARE. | |
| 29 </copyright> | |
| 30 | |
| 31 <description summary="list toplevels"> | |
| 32 The purpose of this protocol is to provide protocol object handles for | |
| 33 toplevels, possibly originating from another client. | |
| 34 | |
| 35 This protocol is intentionally minimalistic and expects additional | |
| 36 functionality (e.g. creating a screencopy source from a toplevel handle, | |
| 37 getting information about the state of the toplevel) to be implemented | |
| 38 in extension protocols. | |
| 39 | |
| 40 The compositor may choose to restrict this protocol to a special client | |
| 41 launched by the compositor itself or expose it to all clients, | |
| 42 this is compositor policy. | |
| 43 | |
| 44 The key words "must", "must not", "required", "shall", "shall not", | |
| 45 "should", "should not", "recommended", "may", and "optional" in this | |
| 46 document are to be interpreted as described in IETF RFC 2119. | |
| 47 | |
| 48 Warning! The protocol described in this file is currently in the testing | |
| 49 phase. Backward compatible changes may be added together with the | |
| 50 corresponding interface version bump. Backward incompatible changes can | |
| 51 only be done by creating a new major version of the extension. | |
| 52 </description> | |
| 53 | |
| 54 <interface name="ext_foreign_toplevel_list_v1" version="1"> | |
| 55 <description summary="list toplevels"> | |
| 56 A toplevel is defined as a surface with a role similar to xdg_toplevel. | |
| 57 XWayland surfaces may be treated like toplevels in this protocol. | |
| 58 | |
| 59 After a client binds the ext_foreign_toplevel_list_v1, each mapped | |
| 60 toplevel window will be sent using the ext_foreign_toplevel_list_v1.toplevel | |
| 61 event. | |
| 62 | |
| 63 Clients which only care about the current state can perform a roundtrip after | |
| 64 binding this global. | |
| 65 | |
| 66 For each instance of ext_foreign_toplevel_list_v1, the compositor must | |
| 67 create a new ext_foreign_toplevel_handle_v1 object for each mapped toplevel. | |
| 68 | |
| 69 If a compositor implementation sends the ext_foreign_toplevel_list_v1.finished | |
| 70 event after the global is bound, the compositor must not send any | |
| 71 ext_foreign_toplevel_list_v1.toplevel events. | |
| 72 </description> | |
| 73 | |
| 74 <event name="toplevel"> | |
| 75 <description summary="a toplevel has been created"> | |
| 76 This event is emitted whenever a new toplevel window is created. It is | |
| 77 emitted for all toplevels, regardless of the app that has created them. | |
| 78 | |
| 79 All initial properties of the toplevel (identifier, title, app_id) will be sent | |
| 80 immediately after this event using the corresponding events for | |
| 81 ext_foreign_toplevel_handle_v1. The compositor will use the | |
| 82 ext_foreign_toplevel_handle_v1.done event to indicate when all data has | |
| 83 been sent. | |
| 84 </description> | |
| 85 <arg name="toplevel" type="new_id" interface="ext_foreign_toplevel_handle_v1"/> | |
| 86 </event> | |
| 87 | |
| 88 <event name="finished"> | |
| 89 <description summary="the compositor has finished with the toplevel manager"> | |
| 90 This event indicates that the compositor is done sending events | |
| 91 to this object. The client should should destroy the object. | |
| 92 See ext_foreign_toplevel_list_v1.destroy for more information. | |
| 93 | |
| 94 The compositor must not send any more toplevel events after this event. | |
| 95 </description> | |
| 96 </event> | |
| 97 | |
| 98 <request name="stop"> | |
| 99 <description summary="stop sending events"> | |
| 100 This request indicates that the client no longer wishes to receive | |
| 101 events for new toplevels. | |
| 102 | |
| 103 The Wayland protocol is asynchronous, meaning the compositor may send | |
| 104 further toplevel events until the stop request is processed. | |
| 105 The client should wait for a ext_foreign_toplevel_list_v1.finished | |
| 106 event before destroying this object. | |
| 107 </description> | |
| 108 </request> | |
| 109 | |
| 110 <request name="destroy" type="destructor"> | |
| 111 <description summary="destroy the ext_foreign_toplevel_list_v1 object"> | |
| 112 This request should be called either when the client will no longer | |
| 113 use the ext_foreign_toplevel_list_v1 or after the finished event | |
| 114 has been received to allow destruction of the object. | |
| 115 | |
| 116 If a client wishes to destroy this object it should send a | |
| 117 ext_foreign_toplevel_list_v1.stop request and wait for a ext_foreign_toplevel_list_v1.finished | |
| 118 event, then destroy the handles and then this object. | |
| 119 </description> | |
| 120 </request> | |
| 121 </interface> | |
| 122 | |
| 123 <interface name="ext_foreign_toplevel_handle_v1" version="1"> | |
| 124 <description summary="a mapped toplevel"> | |
| 125 A ext_foreign_toplevel_handle_v1 object represents a mapped toplevel | |
| 126 window. A single app may have multiple mapped toplevels. | |
| 127 </description> | |
| 128 | |
| 129 <request name="destroy" type="destructor"> | |
| 130 <description summary="destroy the ext_foreign_toplevel_handle_v1 object"> | |
| 131 This request should be used when the client will no longer use the handle | |
| 132 or after the closed event has been received to allow destruction of the | |
| 133 object. | |
| 134 | |
| 135 When a handle is destroyed, a new handle may not be created by the server | |
| 136 until the toplevel is unmapped and then remapped. Destroying a toplevel handle | |
| 137 is not recommended unless the client is cleaning up child objects | |
| 138 before destroying the ext_foreign_toplevel_list_v1 object, the toplevel | |
| 139 was closed or the toplevel handle will not be used in the future. | |
| 140 | |
| 141 Other protocols which extend the ext_foreign_toplevel_handle_v1 | |
| 142 interface should require destructors for extension interfaces be | |
| 143 called before allowing the toplevel handle to be destroyed. | |
| 144 </description> | |
| 145 </request> | |
| 146 | |
| 147 <event name="closed"> | |
| 148 <description summary="the toplevel has been closed"> | |
| 149 The server will emit no further events on the ext_foreign_toplevel_handle_v1 | |
| 150 after this event. Any requests received aside from the destroy request must | |
| 151 be ignored. Upon receiving this event, the client should destroy the handle. | |
| 152 | |
| 153 Other protocols which extend the ext_foreign_toplevel_handle_v1 | |
| 154 interface must also ignore requests other than destructors. | |
| 155 </description> | |
| 156 </event> | |
| 157 | |
| 158 <event name="done"> | |
| 159 <description summary="all information about the toplevel has been sent"> | |
| 160 This event is sent after all changes in the toplevel state have | |
| 161 been sent. | |
| 162 | |
| 163 This allows changes to the ext_foreign_toplevel_handle_v1 properties | |
| 164 to be atomically applied. Other protocols which extend the | |
| 165 ext_foreign_toplevel_handle_v1 interface may use this event to also | |
| 166 atomically apply any pending state. | |
| 167 | |
| 168 This event must not be sent after the ext_foreign_toplevel_handle_v1.closed | |
| 169 event. | |
| 170 </description> | |
| 171 </event> | |
| 172 | |
| 173 <event name="title"> | |
| 174 <description summary="title change"> | |
| 175 The title of the toplevel has changed. | |
| 176 | |
| 177 The configured state must not be applied immediately. See | |
| 178 ext_foreign_toplevel_handle_v1.done for details. | |
| 179 </description> | |
| 180 <arg name="title" type="string"/> | |
| 181 </event> | |
| 182 | |
| 183 <event name="app_id"> | |
| 184 <description summary="app_id change"> | |
| 185 The app id of the toplevel has changed. | |
| 186 | |
| 187 The configured state must not be applied immediately. See | |
| 188 ext_foreign_toplevel_handle_v1.done for details. | |
| 189 </description> | |
| 190 <arg name="app_id" type="string"/> | |
| 191 </event> | |
| 192 | |
| 193 <event name="identifier"> | |
| 194 <description summary="a stable identifier for a toplevel"> | |
| 195 This identifier is used to check if two or more toplevel handles belong | |
| 196 to the same toplevel. | |
| 197 | |
| 198 The identifier is useful for command line tools or privileged clients | |
| 199 which may need to reference an exact toplevel across processes or | |
| 200 instances of the ext_foreign_toplevel_list_v1 global. | |
| 201 | |
| 202 The compositor must only send this event when the handle is created. | |
| 203 | |
| 204 The identifier must be unique per toplevel and it's handles. Two different | |
| 205 toplevels must not have the same identifier. The identifier is only valid | |
| 206 as long as the toplevel is mapped. If the toplevel is unmapped the identifier | |
| 207 must not be reused. An identifier must not be reused by the compositor to | |
| 208 ensure there are no races when sharing identifiers between processes. | |
| 209 | |
| 210 An identifier is a string that contains up to 32 printable ASCII bytes. | |
| 211 An identifier must not be an empty string. It is recommended that a | |
| 212 compositor includes an opaque generation value in identifiers. How the | |
| 213 generation value is used when generating the identifier is implementation | |
| 214 dependent. | |
| 215 </description> | |
| 216 <arg name="identifier" type="string"/> | |
| 217 </event> | |
| 218 </interface> | |
| 219 </protocol> |
