diff --git a/protocol/wayland.xml b/protocol/wayland.xml
index 8d911875..722da4e7 100644
--- a/protocol/wayland.xml
+++ b/protocol/wayland.xml
@@ -27,12 +27,10 @@
THIS SOFTWARE.
-
- The core global object. This is a special singleton object.
- It is used for internal wayland protocol features.
+ The core global object. This is a special singleton object. It
+ is used for internal wayland protocol features.
@@ -43,17 +41,21 @@
-
+
+ The sync request asks the server to invoke the 'done' request
+ on the provided wl_callback object. Since requests are
+ handled in-order, this can be used as a barrier to ensure all
+ previous requests have been handled.
+
-
+
+ The error event is sent out when a fatal (non-recoverable)
+ error has occurred.
+
@@ -72,25 +74,33 @@
summary="server is out of memory"/>
-
+
+ Notify the client of global objects. These are objects that
+ are created by the server. Globals are published on the
+ initial client connection sequence, upon device hotplugs,
+ device disconnects, reconfiguration or other events. A client
+ can 'bind' to a global object by using the bind request. This
+ creates a client side handle that lets the object emit events
+ to the client and lets the client invoke requests on the
+ object.
+
-
-
+
+ Notify the client of removed global objects.
+
+
-
+
+ Server has deleted the id and client can now reuse it.
+
@@ -101,19 +111,26 @@
-
-
+
+ A compositor. This object is a singleton global. The
+ compositor is in charge of combining the contents of multiple
+ surfaces into one displayable output.
+
+
+
+ Ask the compositor to create a new surface.
+
-
+
+ Support for shared memory buffers.
+
+
@@ -125,13 +142,16 @@
-
+
+ Transfer a shm buffer to the server. The allocated buffer
+ would include at least stride * height bytes starting at the
+ beginning of fd. The file descriptor is transferred over the
+ socket using AF_UNIX magical features. width, height, stride
+ and format describe the respective properties of the pixel
+ data contained in the buffer.
+
+
@@ -145,36 +165,50 @@
-
-
-
+
+ A buffer provides the content for a wl_surface. Buffers are
+ created through factory interfaces such as wl_drm, wl_shm or
+ similar. It has a width and a height and can be attached to a
+ wl_surface, but the mechnism by which a client provides and
+ updates the contents is defined by the buffer factory interface
+
+
+
+ Notify the server that the specified area of the buffers
+ contents have changed. To describe a more complicated area of
+ damage, break down the region into rectangles and use this
+ request several times.
+
+
-
-
+
+
+ Destroy a buffer. This will invalidate the object id.
+
+
-
-
+
+
+ Sent when an attached buffer is no longer used by the compositor.
+
+
-
+
+ Indicate that the client can accept the given mime-type, or
+ NULL for not accepted. Use for feedback during drag and drop.
+
+
@@ -186,39 +220,57 @@
-
+
+ Sent immediately after creating the wl_data_offer object. One
+ event per offered mime type.
+
+
-
+
+ This request adds a mime-type to the set of mime-types
+ advertised to targets. Can be called several times to offer
+ multiple types.
+
-
-
+
+
+ Destroy the data source.
+
+
-
+
+ Sent when a target accepts pointer_focus or motion events. If
+ a target does not accept any of the offered types, type is NULL.
+
+
-
+
+ Request for data from another client. Send the data as the
+ specified mime-type over the passed fd, then close the fd.
+
+
-
-
+
+
+ Another selection became active.
+
+
+
@@ -240,14 +292,17 @@
-
+
+ The data_offer event introduces a new wl_data_offer object,
+ which will subsequently be used in either the
+ data_device.enter event (for drag and drop) or the
+ data_device.selection event (for selections). Immediately
+ following the data_device_data_offer event, the new data_offer
+ object will send out data_offer.offer events to describe the
+ mime-types it offers.
+
+
@@ -269,16 +324,18 @@
-
+
+ The selection event is sent out to notify the client of a new
+ wl_data_offer for the selection for this device. The
+ data_device.data_offer and the data_offer.offer events are
+ sent out immediately before this event to introduce the data
+ offer object. The selection event is sent to a client
+ immediately before receiving keyboard focus and when a new
+ selection is set while the client has keyboard focus. The
+ data_offer is valid until a new data_offer or NULL is received
+ or until the client loses keyboard focus.
+
@@ -301,12 +358,15 @@
-
+
+
+ An interface implemented by a wl_surface. On server side the
+ object is automatically destroyed when the related wl_surface is
+ destroyed. On client side, wl_shell_surface_destroy() must be
+ called before destroying the wl_surface object.
+
+
@@ -327,51 +387,60 @@
-
-
-
+
+
+ Make the surface a toplevel window.
+
+
-
+
+ Map the surface relative to an existing surface. The x and y
+ arguments specify the locations of the upper left corner of
+ the surface relative to the upper left corner of the parent
+ surface. The flags argument controls overflow/clipping
+ behaviour when the surface would intersect a screen edge,
+ panel or such. And possibly whether the offset only
+ determines the initial position or if the surface is locked to
+ that relative position during moves.
+
+
-
-
+
+
+ Map the surface as a fullscreen surface. There are a number
+ of options here: on which output? if the surface size doesn't
+ match the output size, do we scale, change resolution, or add
+ black borders? is that something the client controls? what
+ about transient surfaces, do they float on top of the
+ fullscreen? what if there's already a fullscreen surface on
+ the output, maybe you can only go fullscreen if you're active?
+
+
-
+
+ Popup surfaces. Will switch an implicit grab into
+ owner-events mode, and grab will continue after the implicit
+ grab ends (button released). Once the implicit grab is over,
+ the popup grab continues until the window is destroyed or a
+ mouse button is pressed in any other clients window. A click
+ in any of the clients surfaces is reported as normal, however,
+ clicks in other clients surfaces will be discarded and trigger
+ the callback.
+
+ TODO: Grab keyboard too, maybe just terminate on any click
+ inside or outside the surface?
+
+
@@ -380,83 +449,111 @@
-
+
+ The configure event asks the client to resize its surface.
+ The size is a hint, in the sense that the client is free to
+ ignore it if it doesn't resize, pick a smaller size (to
+ satisfy aspect ration or resize in steps of NxM pixels). The
+ client is free to dismiss all but the last configure event it
+ received.
+
+
-
-
+
+
+ The popup_done event is sent out when a popup grab is broken,
+ that is, when the users clicks a surface that doesn't belong
+ to the client owning the popup surface.
+
+
-
-
-
-
+
+ A surface. This is an image that is displayed on the screen.
+ It has a location, size and pixel contents.
+
+
+
+
+ Deletes the surface and invalidates its object id.
+
+
-
+
+ Copy the contents of a buffer into this surface. The x and y
+ arguments specify the location of the new buffers upper left
+ corner, relative to the old buffers upper left corner.
+
+
-
+
+ After attaching a new buffer, this request is used to describe
+ the regions where the new buffer is different from the
+ previous buffer and needs to be repainted. Coordinates are
+ relative to the new buffer.
+
+
-
+
+ Request notification when the next frame is displayed. Useful
+ for throttling redrawing operations, and driving animations.
+ The notification will only be posted for one frame unless
+ requested again.
+
+
-
-
-
+
+ A group of keyboards and pointer devices (mice, for
+ example). This object is published as a global during start up,
+ or when such a device is hot plugged. A input_device group
+ typically has a pointer and maintains a keyboard_focus and a
+ pointer_focus.
+
+
+
+ Set the pointer's image. This request only takes effect if
+ the pointer focus for this device is one of the requesting
+ clients surfaces.
+
+
-
+
+ Notification of pointer location change. x,y are the absolute
+ location on the screen. surface_[xy] are the location
+ relative to the focused surface.
+
+
@@ -464,27 +561,35 @@
-
+
+ Mouse button click and release notifications. The location
+ of the click is given by the last motion or pointer_focus event.
+
+
-
+
+ A key was pressed or released.
+
+
-
+
+ Notification that this input device's pointer is focused on
+ certain surface. When an input_device enters a surface, the
+ pointer image is undefined and a client should respond to this
+ event by setting an apropriate pointer image.
+
+
@@ -519,24 +624,31 @@
-
-
+
+
+ Indicates the end of a contact point list.
+
+
-
-
+
+
+ Sent if the compositor decides the touch stream is a global
+ gesture. No further events are sent to the clients from that
+ particular gesture.
+
+
-
+
+ An output describes part of the compositor geometry. The
+ compositor work in the 'compositor coordinate system' and an
+ output corresponds to rectangular area in that space that is
+ actually visible. This typically corresponds to a monitor that
+ displays part of the compositor space. This object is published
+ as global during start up, or when a screen is hot plugged.
+
@@ -557,8 +669,8 @@
-
+