summaryrefslogtreecommitdiff
path: root/protocol
diff options
context:
space:
mode:
Diffstat (limited to 'protocol')
-rw-r--r--protocol/wayland.xml256
1 files changed, 109 insertions, 147 deletions
diff --git a/protocol/wayland.xml b/protocol/wayland.xml
index 7e6392a..51a83ef 100644
--- a/protocol/wayland.xml
+++ b/protocol/wayland.xml
@@ -157,6 +157,115 @@
<event name="release"/>
</interface>
+
+ <interface name="wl_data_offer" version="1">
+ <!-- Indicate that the client can accept the given mime-type, or
+ NULL for not accepted. Use for feedback during drag and
+ drop. -->
+ <request name="accept">
+ <arg name="time" type="uint"/>
+ <arg name="type" type="string"/>
+ </request>
+
+ <request name="receive">
+ <arg name="mime_type" type="string"/>
+ <arg name="fd" type="fd"/>
+ </request>
+
+ <request name="destroy" type="destructor"/>
+
+ <!-- Sent immediately after creating the wl_data_offer object. One
+ event per offered mime type. -->
+ <event name="offer">
+ <arg name="type" type="string"/>
+ </event>
+ </interface>
+
+ <interface name="wl_data_source" version="1">
+ <!-- Add an offered mime type. Can be called several times to
+ offer multiple types. -->
+ <request name="offer">
+ <arg name="type" type="string"/>
+ </request>
+
+ <!-- Destroy the selection. -->
+ <request name="destroy" type="destructor"/>
+
+ <!-- Sent when a target accepts pointer_focus or motion events.
+ If a target does not accept any of the offered types, type is
+ NULL -->
+ <event name="target">
+ <arg name="mime_type" type="string"/>
+ </event>
+
+ <!-- Request for data from another client. Send the data in the
+ specified mime-type over the passed fd, the close it. -->
+ <event name="send">
+ <arg name="mime_type" type="string"/>
+ <arg name="fd" type="fd"/>
+ </event>
+
+ <!-- Another selection became active. -->
+ <event name="cancelled"/>
+ </interface>
+
+ <interface name="wl_data_device" version="1">
+ <request name="start_drag">
+ <arg name="source" type="object" interface="wl_data_source"/>
+ <arg name="surface" type="object" interface="wl_surface"/>
+ <arg name="time" type="uint"/>
+ </request>
+
+ <request name="attach">
+ <arg name="time" type="uint"/>
+ <arg name="buffer" type="object" interface="wl_buffer"/>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ </request>
+
+ <request name="set_selection">
+ <arg name="source" type="object" interface="wl_data_source"/>
+ <arg name="time" type="uint"/>
+ </request>
+
+ <event name="data_offer">
+ <arg name="id" type="new_id" interface="wl_data_offer"/>
+ </event>
+
+ <event name="enter">
+ <arg name="time" type="uint"/>
+ <arg name="surface" type="object" interface="wl_surface"/>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ <arg name="id" type="object" interface="wl_data_offer"/>
+ </event>
+
+ <event name="leave"/>
+
+ <event name="motion">
+ <arg name="time" type="uint"/>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ </event>
+
+ <event name="drop"/>
+
+ <event name="selection">
+ <arg name="id" type="object" interface="wl_data_offer"/>
+ </event>
+ </interface>
+
+ <interface name="wl_data_device_manager" version="1">
+ <request name="create_data_source">
+ <arg name="id" type="new_id" interface="wl_data_source"/>
+ </request>
+
+ <request name="get_data_device">
+ <arg name="id" type="new_id" interface="wl_data_device"/>
+ <arg name="input_device" type="object" interface="wl_input_device"/>
+ </request>
+ </interface>
+
<interface name="wl_shell" version="1">
<request name="move">
<arg name="surface" type="object" interface="wl_surface"/>
@@ -184,14 +293,6 @@
<arg name="edges" type="uint"/>
</request>
- <request name="create_drag">
- <arg name="id" type="new_id" interface="wl_drag"/>
- </request>
-
- <request name="create_selection">
- <arg name="id" type="new_id" interface="wl_selection"/>
- </request>
-
<!-- Make the surface visible as a toplevel window. -->
<request name="set_toplevel">
<arg name="surface" type="object" interface="wl_surface"/>
@@ -240,145 +341,6 @@
</event>
</interface>
- <interface name="wl_selection" version="1">
- <!-- Add an offered mime type. Can be called several times to
- offer multiple types, but must be called before 'activate'. -->
- <request name="offer">
- <arg name="type" type="string"/>
- </request>
-
- <!-- Can the selection be activated for multiple devices? -->
- <request name="activate">
- <arg name="input_device" type="object" interface="wl_input_device"/>
- <arg name="time" type="uint"/>
- </request>
-
- <!-- Destroy the selection. -->
- <request name="destroy" type="destructor"/>
-
- <!-- Another client pasted the selection, send the mime-type over
- the passed fd. -->
- <event name="send">
- <arg name="mime_type" type="string"/>
- <arg name="fd" type="fd"/>
- </event>
-
- <!-- Another selection became active. -->
- <event name="cancelled"/>
- </interface>
-
- <interface name="wl_selection_offer" version="1">
- <!-- Called to receive the selection data as the specified type.
- Sends the pipe fd to the compositor, which forwards it to the
- source in the 'send' event -->
- <request name="receive">
- <arg name="mime_type" type="string"/>
- <arg name="fd" type="fd"/>
- </request>
-
- <!-- Sent before the keyboard_focus event to announce the types
- offered. One event per offered mime type. A mime type of
- NULL means the selection offer is going away. -->
- <event name="offer">
- <arg name="type" type="string"/>
- </event>
-
- <event name="keyboard_focus">
- <arg name="input_device" type="object" interface="wl_input_device"/>
- </event>
- </interface>
-
- <interface name="wl_drag" version="1">
- <!-- Add an offered mime type. Can be called several times to
- offer multiple types, but must be called before 'activate'. -->
- <request name="offer">
- <arg name="type" type="string"/>
- </request>
-
- <request name="activate">
- <arg name="surface" type="object" interface="wl_surface"/>
- <arg name="input_device" type="object" interface="wl_input_device"/>
- <arg name="time" type="uint"/>
- </request>
-
- <!-- Destroy the drag and cancel the session. -->
- <request name="destroy" type="destructor"/>
-
- <!-- Sent when a target accepts pointer_focus or motion events.
- If a target does not accept any of the offered types, type is
- NULL -->
- <event name="target">
- <arg name="mime_type" type="string"/>
- </event>
-
- <!-- Sent when the drag is finished. The final mime type is that
- of the last target event. If that was NULL, no drag target
- was valid when the drag finished, fd is undefined and the
- source should not send data. The event is also sent in case
- a drag source tries to activate a drag after the grab was
- released, in which case mime_type will also be NULL. -->
- <event name="finish">
- <arg name="fd" type="fd"/>
- </event>
-
- <event name="reject"/>
- </interface>
-
-
- <interface name="wl_drag_offer" version="1">
- <!-- Call to accept the offer of the given type -->
- <request name="accept">
- <arg name="time" type="uint"/>
- <arg name="type" type="string"/>
- </request>
-
- <!-- Called to initiate the drag finish sequence. Sends the pipe
- fd to the compositor, which forwards it to the source in the
- 'finish' event -->
- <request name="receive">
- <arg name="fd" type="fd"/>
- </request>
-
- <!-- Called to reject a drop -->
- <request name="reject"/>
-
- <!-- Sent before the pointer_focus event to announce the types
- offered. One event per offered mime type. -->
- <event name="offer">
- <arg name="type" type="string"/>
- </event>
-
- <!-- Similar to device::pointer_focus. Sent to potential target
- surfaces to offer drag data. If the device leaves the
- window, the drag stops or the originator cancels the drag,
- this event is sent with the NULL surface, at which point the
- drag object may no longer be valid. -->
- <event name="pointer_focus">
- <arg name="time" type="uint"/>
- <arg name="surface" type="object" interface="wl_surface"/>
- <arg name="x" type="int"/>
- <arg name="y" type="int"/>
- <arg name="surface_x" type="int"/>
- <arg name="surface_y" type="int"/>
- </event>
-
- <!-- Similar to device::motion. Sent to potential target surfaces
- as the drag pointer moves around in the surface. -->
- <event name="motion">
- <arg name="time" type="uint"/>
- <arg name="x" type="int"/>
- <arg name="y" type="int"/>
- <arg name="surface_x" type="int"/>
- <arg name="surface_y" type="int"/>
- </event>
-
- <!-- Sent to indicate that the drag is finishing. The last
- motion/pointer_focus event gives the location of the drop.
- Target must respond with the 'receive' request, which sends
- an fd to the source for writing the drag data. -->
- <event name="drop"/>
- </interface>
-
<!-- A surface. This is an image that is displayed on the screen.
It has a location, size and pixel contents. Similar to a window. -->