[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

wayland-protocols: Changes to 'upstream-unstable'



 Makefile.am                                                                    |    2 
 configure.ac                                                                   |    3 
 stable/presentation-time/presentation-time.xml                                 |    5 
 stable/viewporter/viewporter.xml                                               |    3 
 unstable/idle-inhibit/idle-inhibit-unstable-v1.xml                             |    4 
 unstable/input-method/input-method-unstable-v1.xml                             |   49 +--
 unstable/keyboard-shortcuts-inhibit/README                                     |    4 
 unstable/keyboard-shortcuts-inhibit/keyboard-shortcuts-inhibit-unstable-v1.xml |  143 ++++++++++
 unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml                             |  140 +++++++--
 unstable/pointer-constraints/pointer-constraints-unstable-v1.xml               |    5 
 unstable/relative-pointer/relative-pointer-unstable-v1.xml                     |    2 
 unstable/tablet/tablet-unstable-v1.xml                                         |    1 
 unstable/tablet/tablet-unstable-v2.xml                                         |    1 
 unstable/text-input/text-input-unstable-v1.xml                                 |   80 ++---
 unstable/xdg-foreign/xdg-foreign-unstable-v1.xml                               |    4 
 unstable/xdg-shell/xdg-shell-unstable-v5.xml                                   |    2 
 unstable/xdg-shell/xdg-shell-unstable-v6.xml                                   |   21 -
 unstable/xwayland-keyboard-grab/README                                         |    4 
 unstable/xwayland-keyboard-grab/xwayland-keyboard-grab-unstable-v1.xml         |  121 ++++++++
 wayland-protocols-uninstalled.pc.in                                            |    5 
 20 files changed, 463 insertions(+), 136 deletions(-)

New commits:
commit 7af21d83d3dbacb56126a946fb15b3e924c4c84f
Author: Jonas Ådahl <jadahl@gmail.com>
Date:   Tue Jul 11 14:41:21 2017 +0800

    configure.ac: Bump version to 1.9
    
    Signed-off-by: Jonas Ådahl <jadahl@gmail.com>

diff --git a/configure.ac b/configure.ac
index e98bceb..472ee8f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,7 @@
 AC_PREREQ([2.64])
 
 m4_define([wayland_protocols_major_version], [1])
-m4_define([wayland_protocols_minor_version], [8])
+m4_define([wayland_protocols_minor_version], [9])
 m4_define([wayland_protocols_version],
           [wayland_protocols_major_version.wayland_protocols_minor_version])
 

commit e16986b3d2fb9adf07599fc5003eb927a15aeee9
Author: Olivier Fourdan <ofourdan@redhat.com>
Date:   Fri Jun 30 18:13:52 2017 +0200

    Add keyboard shortcuts inhibitor
    
    This adds a new protocol to let Wayland clients specify that they want
    all keyboard events to be sent to the client, regardless of the
    compositor own shortcuts.
    
    This protocol can be used for virtual machine and remote connection
    viewers which require to pass all keyboard shortcuts to the hosted or
    remote system instead of being caught up by the compositor locally.
    
    Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Jonas Ådahl <jadahl@gmail.com>

diff --git a/Makefile.am b/Makefile.am
index 12465e6..d100c13 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -13,6 +13,7 @@ unstable_protocols =								\
 	unstable/xdg-foreign/xdg-foreign-unstable-v1.xml			\
 	unstable/idle-inhibit/idle-inhibit-unstable-v1.xml			\
 	unstable/xwayland-keyboard-grab/xwayland-keyboard-grab-unstable-v1.xml	\
+	unstable/keyboard-shortcuts-inhibit/keyboard-shortcuts-inhibit-unstable-v1.xml \
 	$(NULL)
 
 stable_protocols =								\
diff --git a/unstable/keyboard-shortcuts-inhibit/README b/unstable/keyboard-shortcuts-inhibit/README
new file mode 100644
index 0000000..63ff335
--- /dev/null
+++ b/unstable/keyboard-shortcuts-inhibit/README
@@ -0,0 +1,4 @@
+Compositor shortcuts inhibit protocol
+
+Maintainers:
+Olivier Fourdan <ofourdan@redhat.com>
diff --git a/unstable/keyboard-shortcuts-inhibit/keyboard-shortcuts-inhibit-unstable-v1.xml b/unstable/keyboard-shortcuts-inhibit/keyboard-shortcuts-inhibit-unstable-v1.xml
new file mode 100644
index 0000000..2774876
--- /dev/null
+++ b/unstable/keyboard-shortcuts-inhibit/keyboard-shortcuts-inhibit-unstable-v1.xml
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="keyboard_shortcuts_inhibit_unstable_v1">
+
+  <copyright>
+    Copyright © 2017 Red Hat Inc.
+
+    Permission is hereby granted, free of charge, to any person obtaining a
+    copy of this software and associated documentation files (the "Software"),
+    to deal in the Software without restriction, including without limitation
+    the rights to use, copy, modify, merge, publish, distribute, sublicense,
+    and/or sell copies of the Software, and to permit persons to whom the
+    Software is furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice (including the next
+    paragraph) shall be included in all copies or substantial portions of the
+    Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+    THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+    DEALINGS IN THE SOFTWARE.
+  </copyright>
+
+  <description summary="Protocol for inhibiting the compositor keyboard shortcuts">
+    This protocol specifies a way for a client to request the compositor
+    to ignore its own keyboard shortcuts for a given seat, so that all
+    key events from that seat get forwarded to a surface.
+
+    Warning! The protocol described in this file is experimental and
+    backward incompatible changes may be made. Backward compatible
+    changes may be added together with the corresponding interface
+    version bump.
+    Backward incompatible changes are done by bumping the version
+    number in the protocol and interface names and resetting the
+    interface version. Once the protocol is to be declared stable,
+    the 'z' prefix and the version number in the protocol and
+    interface names are removed and the interface version number is
+    reset.
+  </description>
+
+  <interface name="zwp_keyboard_shortcuts_inhibit_manager_v1" version="1">
+    <description summary="context object for keyboard grab_manager">
+      A global interface used for inhibiting the compositor keyboard shortcuts.
+    </description>
+
+    <request name="destroy" type="destructor">
+      <description summary="destroy the keyboard shortcuts inhibitor object">
+	Destroy the keyboard shortcuts inhibitor manager.
+      </description>
+    </request>
+
+    <request name="inhibit_shortcuts">
+      <description summary="create a new keyboard shortcuts inhibitor object">
+	Create a new keyboard shortcuts inhibitor object associated with
+	the given surface for the given seat.
+
+	If shortcuts are already inhibited for the specified seat and surface,
+	a protocol error "already_inhibited" is raised by the compositor.
+      </description>
+      <arg name="id" type="new_id" interface="zwp_keyboard_shortcuts_inhibitor_v1"/>
+      <arg name="surface" type="object" interface="wl_surface"
+	   summary="the surface that inhibits the keyboard shortcuts behavior"/>
+      <arg name="seat" type="object" interface="wl_seat"
+	   summary="the wl_seat for which keyboard shortcuts should be disabled"/>
+    </request>
+
+    <enum name="error">
+      <entry name="already_inhibited"
+	     value="0"
+	     summary="the shortcuts are already inhibited for this surface"/>
+    </enum>
+  </interface>
+
+  <interface name="zwp_keyboard_shortcuts_inhibitor_v1" version="1">
+    <description summary="context object for keyboard shortcuts inhibitor">
+      A keyboard shortcuts inhibitor instructs the compositor to ignore
+      its own keyboard shortcuts when the associated surface has keyboard
+      focus. As a result, when the surface has keyboard focus on the given
+      seat, it will receive all key events originating from the specified
+      seat, even those which would normally be caught by the compositor for
+      its own shortcuts.
+
+      The Wayland compositor is however under no obligation to disable
+      all of its shortcuts, and may keep some special key combo for its own
+      use, including but not limited to one allowing the user to forcibly
+      restore normal keyboard events routing in the case of an unwilling
+      client. The compositor may also use the same key combo to reactivate
+      an existing shortcut inhibitor that was previously deactivated on
+      user request.
+
+      When the compositor restores its own keyboard shortcuts, an
+      "inactive" event is emitted to notify the client that the keyboard
+      shortcuts inhibitor is not effectively active for the surface and
+      seat any more, and the client should not expect to receive all
+      keyboard events.
+
+      When the keyboard shortcuts inhibitor is inactive, the client has
+      no way to forcibly reactivate the keyboard shortcuts inhibitor.
+
+      The user can chose to re-enable a previously deactivated keyboard
+      shortcuts inhibitor using any mechanism the compositor may offer,
+      in which case the compositor will send an "active" event to notify
+      the client.
+
+      If the surface is destroyed, unmapped, or loses the seat's keyboard
+      focus, the keyboard shortcuts inhibitor becomes irrelevant and the
+      compositor will restore its own keyboard shortcuts but no "inactive"
+      event is emitted in this case.
+    </description>
+
+    <request name="destroy" type="destructor">
+      <description summary="destroy the keyboard shortcuts inhibitor object">
+	Remove the keyboard shortcuts inhibitor from the associated wl_surface.
+      </description>
+    </request>
+
+    <event name="active">
+      <description summary="shortcuts are inhibited">
+	This event indicates that the shortcut inhibitor is active.
+
+	The compositor sends this event every time compositor shortcuts
+	are inhibited on behalf of the surface. When active, the client
+	may receive input events normally reserved by the compositor
+	(see zwp_keyboard_shortcuts_inhibitor_v1).
+
+	This occurs typically when the initial request "inhibit_shortcuts"
+	first becomes active or when the user instructs the compositor to
+	re-enable and existing shortcuts inhibitor using any mechanism
+	offered by the compositor.
+      </description>
+    </event>
+
+    <event name="inactive">
+      <description summary="shortcuts are restored">
+	This event indicates that the shortcuts inhibitor is inactive,
+	normal shortcuts processing is restored by the compositor.
+       </description>
+    </event>
+  </interface>
+</protocol>

commit 0a61d3516b10da4e65607a6dd97937ebedf6bcfa
Author: Olivier Fourdan <ofourdan@redhat.com>
Date:   Fri Jun 30 18:10:01 2017 +0200

    Introduce keyboard grabbing protocol for Xwayland
    
    This patch introduces a new protocol for grabbing the keyboard from
    Xwayland.
    
    This is needed for X11 applications that map an override redirect window
    (thus not focused by the window manager) and issue an active grab on the
    keyboard to capture all keyboard events.
    
    Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Jonas Ådahl <jadahl@gmail.com>

diff --git a/Makefile.am b/Makefile.am
index e693afa..12465e6 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -12,6 +12,7 @@ unstable_protocols =								\
 	unstable/tablet/tablet-unstable-v2.xml			                \
 	unstable/xdg-foreign/xdg-foreign-unstable-v1.xml			\
 	unstable/idle-inhibit/idle-inhibit-unstable-v1.xml			\
+	unstable/xwayland-keyboard-grab/xwayland-keyboard-grab-unstable-v1.xml	\
 	$(NULL)
 
 stable_protocols =								\
diff --git a/unstable/xwayland-keyboard-grab/README b/unstable/xwayland-keyboard-grab/README
new file mode 100644
index 0000000..dbe45a5
--- /dev/null
+++ b/unstable/xwayland-keyboard-grab/README
@@ -0,0 +1,4 @@
+Xwayland keyboard grabbing protocol
+
+Maintainers:
+Olivier Fourdan <ofourdan@redhat.com>
diff --git a/unstable/xwayland-keyboard-grab/xwayland-keyboard-grab-unstable-v1.xml b/unstable/xwayland-keyboard-grab/xwayland-keyboard-grab-unstable-v1.xml
new file mode 100644
index 0000000..be4992f
--- /dev/null
+++ b/unstable/xwayland-keyboard-grab/xwayland-keyboard-grab-unstable-v1.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="xwayland_keyboard_grab_unstable_v1">
+
+  <copyright>
+    Copyright © 2017 Red Hat Inc.
+
+    Permission is hereby granted, free of charge, to any person obtaining a
+    copy of this software and associated documentation files (the "Software"),
+    to deal in the Software without restriction, including without limitation
+    the rights to use, copy, modify, merge, publish, distribute, sublicense,
+    and/or sell copies of the Software, and to permit persons to whom the
+    Software is furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice (including the next
+    paragraph) shall be included in all copies or substantial portions of the
+    Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+    THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+    DEALINGS IN THE SOFTWARE.
+  </copyright>
+
+  <description summary="Protocol for grabbing the keyboard from Xwayland">
+    This protocol is application-specific to meet the needs of the X11
+    protocol through Xwayland. It provides a way for Xwayland to request
+    all keyboard events to be forwarded to a surface even when the
+    surface does not have keyboard focus.
+
+    In the X11 protocol, a client may request an "active grab" on the
+    keyboard. On success, all key events are reported only to the
+    grabbing X11 client. For details, see XGrabKeyboard(3).
+
+    The core Wayland protocol does not have a notion of an active
+    keyboard grab. When running in Xwayland, X11 applications may
+    acquire an active grab inside Xwayland but that cannot be translated
+    to the Wayland compositor who may set the input focus to some other
+    surface. In doing so, it breaks the X11 client assumption that all
+    key events are reported to the grabbing client.
+
+    This protocol specifies a way for Xwayland to request all keyboard
+    be directed to the given surface. The protocol does not guarantee
+    that the compositor will honor this request and it does not
+    prescribe user interfaces on how to handle the respond. For example,
+    a compositor may inform the user that all key events are now
+    forwarded to the given client surface, or it may ask the user for
+    permission to do so.
+
+    Compositors are required to restrict access to this application
+    specific protocol to Xwayland alone.
+
+    Warning! The protocol described in this file is experimental and
+    backward incompatible changes may be made. Backward compatible
+    changes may be added together with the corresponding interface
+    version bump.
+    Backward incompatible changes are done by bumping the version
+    number in the protocol and interface names and resetting the
+    interface version. Once the protocol is to be declared stable,
+    the 'z' prefix and the version number in the protocol and
+    interface names are removed and the interface version number is
+    reset.
+  </description>
+
+  <interface name="zwp_xwayland_keyboard_grab_manager_v1" version="1">
+    <description summary="context object for keyboard grab manager">
+      A global interface used for grabbing the keyboard.
+    </description>
+
+    <request name="destroy" type="destructor">
+      <description summary="destroy the keyboard grab manager">
+	Destroy the keyboard grab manager.
+      </description>
+    </request>
+
+    <request name="grab_keyboard">
+      <description summary="grab the keyboard to a surface">
+	The grab_keyboard request asks for a grab of the keyboard, forcing
+	the keyboard focus for the given seat upon the given surface.
+
+	The protocol provides no guarantee that the grab is ever satisfied,
+	and does not require the compositor to send an error if the grab
+	cannot ever be satisfied. It is thus possible to request a keyboard
+	grab that will never be effective.
+
+	The protocol:
+
+	* does not guarantee that the grab itself is applied for a surface,
+	  the grab request may be silently ignored by the compositor,
+	* does not guarantee that any events are sent to this client even
+	  if the grab is applied to a surface,
+	* does not guarantee that events sent to this client are exhaustive,
+	  a compositor may filter some events for its own consumption,
+	* does not guarantee that events sent to this client are continuous,
+	  a compositor may change and reroute keyboard events while the grab
+	  is nominally active.
+      </description>
+
+      <arg name="id" type="new_id" interface="zwp_xwayland_keyboard_grab_v1"/>
+      <arg name="surface" type="object" interface="wl_surface"
+	   summary="surface to report keyboard events to"/>
+      <arg name="seat" type="object" interface="wl_seat"
+	   summary="the seat for which the keyboard should be grabbed"/>
+    </request>
+  </interface>
+
+  <interface name="zwp_xwayland_keyboard_grab_v1" version="1">
+    <description summary="interface for grabbing the keyboard">
+      A global interface used for grabbing the keyboard.
+    </description>
+
+    <request name="destroy" type="destructor">
+      <description summary="destroy the grabbed keyboard object">
+	Destroy the grabbed keyboard object. If applicable, the compositor
+	will ungrab the keyboard.
+      </description>
+    </request>
+  </interface>
+</protocol>

commit 26c99346ab5f2273fe5581bc4f6397bbb834f747
Author: Daniel Stone <daniels@collabora.com>
Date:   Mon Jun 12 10:27:44 2017 +0100

    Bump version to 1.8
    
    Signed-off-by: Daniel Stone <daniels@collabora.com>

diff --git a/configure.ac b/configure.ac
index fbb0ec2..e98bceb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,7 @@
 AC_PREREQ([2.64])
 
 m4_define([wayland_protocols_major_version], [1])
-m4_define([wayland_protocols_minor_version], [7])
+m4_define([wayland_protocols_minor_version], [8])
 m4_define([wayland_protocols_version],
           [wayland_protocols_major_version.wayland_protocols_minor_version])
 

commit c438cbe7dc6d7356fd64d79e8e7159d025b16bbc
Author: Daniel Stone <daniels@collabora.com>
Date:   Sat May 20 16:12:23 2017 +0100

    linux-dmabuf: Bump main protocol version
    
    Unfortunately this hunk fell out during a rebase. Sorry!
    
    Signed-off-by: Daniel Stone <daniels@collabora.com>

diff --git a/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml b/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
index 4c21c29..154afe2 100644
--- a/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
+++ b/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
@@ -24,7 +24,7 @@
     DEALINGS IN THE SOFTWARE.
   </copyright>
 
-  <interface name="zwp_linux_dmabuf_v1" version="2">
+  <interface name="zwp_linux_dmabuf_v1" version="3">
     <description summary="factory for creating dmabuf-based wl_buffers">
       Following the interfaces from:
       https://www.khronos.org/registry/egl/extensions/EXT/EGL_EXT_image_dma_buf_import.txt

commit 4ecdb097dba5ff71cf47dac2c24664ec3ace5b43
Author: Varad Gautam <varad.gautam@collabora.com>
Date:   Thu Jan 19 13:48:02 2017 +0530

    linux-dmabuf: advertise format modifiers with modifier event
    
    advertise the supported fourcc format modifiers along with supported
    formats to the client. the 'modifier' event introduced here is
    intended to replace the 'format' event from zwp_linux_dmabuf_v1
    version 1.
    
    bump zwp_linux_dmabuf_v1, zwp_linux_buffer_params_v1 interface
    versions to 3.
    
    v2: specify request name in event description for clarity (Yong Bakos)
    v3: grammar fixup (Yong Bakos)
    v4: add deprecation warning against 'format' event usage (pq)
    
    Signed-off-by: Varad Gautam <varad.gautam@collabora.com>
    Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
    Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
    Reviewed-by: Daniel Stone <daniels@collabora.com>

diff --git a/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml b/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
index 63fbb2d..4c21c29 100644
--- a/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
+++ b/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
@@ -32,7 +32,8 @@
 
       This interface offers ways to create generic dmabuf-based
       wl_buffers. Immediately after a client binds to this interface,
-      the set of supported formats is sent with 'format' events.
+      the set of supported formats and format modifiers is sent with
+      'format' and 'modifier' events.
 
       The following are required from clients:
 
@@ -112,13 +113,34 @@
         For the definition of the format codes, see the
         zwp_linux_buffer_params_v1::create request.
 
-        XXX: Can a compositor ever enumerate them?
+        Warning: the 'format' event is likely to be deprecated and replaced
+        with the 'modifier' event introduced in zwp_linux_dmabuf_v1
+        version 3, described below. Please refrain from using the information
+        received from this event.
       </description>
       <arg name="format" type="uint" summary="DRM_FORMAT code"/>
     </event>
+
+    <event name="modifier" since="3">
+      <description summary="supported buffer format modifier">
+        This event advertises the formats that the server supports, along with
+        the modifiers supported for each format. All the supported modifiers
+        for all the supported formats are advertised once when the client
+        binds to this interface. A roundtrip after binding guarantees that
+        the client has received all supported format-modifier pairs.
+
+        For the definition of the format and modifier codes, see the
+        zwp_linux_buffer_params_v1::create request.
+      </description>
+      <arg name="format" type="uint" summary="DRM_FORMAT code"/>
+      <arg name="modifier_hi" type="uint"
+           summary="high 32 bits of layout modifier"/>
+      <arg name="modifier_lo" type="uint"
+           summary="low 32 bits of layout modifier"/>
+    </event>
   </interface>
 
-  <interface name="zwp_linux_buffer_params_v1" version="2">
+  <interface name="zwp_linux_buffer_params_v1" version="3">
     <description summary="parameters for creating a dmabuf-based wl_buffer">
       This temporary object is a collection of dmabufs and other
       parameters that together form a single logical buffer. The temporary

commit a840b3634ad637b237f238d2efb9ab8f4712d5f4
Author: Varad Gautam <varad.gautam@collabora.com>
Date:   Fri Feb 10 13:28:20 2017 +0530

    linux-dmabuf: add immediate dmabuf import path
    
    provide a mechanism that allows clients to import the added dmabufs
    and immediately use the newly created wl_buffers without waiting on
    an event. this is useful to clients that are sure of their import
    request succeeding, and wish to avoid the wl_buffer communication
    roundtrip.
    
    bump zwp_linux_dmabuf_v1, zwp_linux_buffer_params_v1 interface
    versions.
    
    v2: specify using incorrectly imported dmabufs as undefined behavior
    instead of sending success/failure events. (pq, daniels)
    v3: preserve the optional protocol error added in v2 and explicitly
    state the outcome of import success or failure (pq)
    v4: clarify create_immed failure cases and error codes (pq)
    
    Signed-off-by: Varad Gautam <varad.gautam@collabora.com>
    Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
    Reviewed-by: Daniel Stone <daniels@collabora.com>

diff --git a/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml b/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
index ed2c4bb..63fbb2d 100644
--- a/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
+++ b/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
@@ -24,13 +24,13 @@
     DEALINGS IN THE SOFTWARE.
   </copyright>
 
-  <interface name="zwp_linux_dmabuf_v1" version="1">
+  <interface name="zwp_linux_dmabuf_v1" version="2">
     <description summary="factory for creating dmabuf-based wl_buffers">
       Following the interfaces from:
       https://www.khronos.org/registry/egl/extensions/EXT/EGL_EXT_image_dma_buf_import.txt
       and the Linux DRM sub-system's AddFb2 ioctl.
 
-      This interface offers a way to create generic dmabuf-based
+      This interface offers ways to create generic dmabuf-based
       wl_buffers. Immediately after a client binds to this interface,
       the set of supported formats is sent with 'format' events.
 
@@ -56,10 +56,23 @@
       To create a wl_buffer from one or more dmabufs, a client creates a
       zwp_linux_dmabuf_params_v1 object with a zwp_linux_dmabuf_v1.create_params
       request. All planes required by the intended format are added with
-      the 'add' request. Finally, a 'create' request is issued. The server
-      will reply with either a 'created' event which provides the final
-      wl_buffer or a 'failed' event saying that it cannot use the dmabufs
-      provided.
+      the 'add' request. Finally, a 'create' or 'create_immed' request is
+      issued, which has the following outcome depending on the import success.
+
+      The 'create' request,
+      - on success, triggers a 'created' event which provides the final
+        wl_buffer to the client.
+      - on failure, triggers a 'failed' event to convey that the server
+        cannot use the dmabufs received from the client.
+
+      For the 'create_immed' request,
+      - on success, the server immediately imports the added dmabufs to
+        create a wl_buffer. No event is sent from the server in this case.
+      - on failure, the server can choose to either:
+        - terminate the client by raising a fatal error.
+        - mark the wl_buffer as failed, and send a 'failed' event to the
+          client. If the client uses a failed wl_buffer as an argument to any
+          request, the behaviour is compositor implementation-defined.
 
       Warning! The protocol described in this file is experimental and
       backward incompatible changes may be made. Backward compatible changes
@@ -105,7 +118,7 @@
     </event>
   </interface>
 
-  <interface name="zwp_linux_buffer_params_v1" version="1">
+  <interface name="zwp_linux_buffer_params_v1" version="2">
     <description summary="parameters for creating a dmabuf-based wl_buffer">
       This temporary object is a collection of dmabufs and other
       parameters that together form a single logical buffer. The temporary
@@ -138,6 +151,9 @@
              summary="invalid width or height"/>
       <entry name="out_of_bounds" value="6"
              summary="offset + stride * height goes out of dmabuf bounds"/>
+      <entry name="invalid_wl_buffer" value="7"
+             summary="invalid wl_buffer resulted from importing dmabufs via
+               the create_immed request on given buffer_params"/>
     </enum>
 
     <request name="destroy" type="destructor">
@@ -269,6 +285,42 @@
         zlinux_buffer_params object.
       </description>
     </event>
+
+    <request name="create_immed" since="2">
+      <description summary="immediately create a wl_buffer from the given
+                     dmabufs">
+        This asks for immediate creation of a wl_buffer by importing the
+        added dmabufs.
+
+        In case of import success, no event is sent from the server, and the
+        wl_buffer is ready to be used by the client.
+
+        Upon import failure, either of the following may happen, as seen fit
+        by the implementation:
+        - the client is terminated with one of the following fatal protocol
+          errors:
+          - INCOMPLETE, INVALID_FORMAT, INVALID_DIMENSIONS, OUT_OF_BOUNDS,
+            in case of argument errors such as mismatch between the number
+            of planes and the format, bad format, non-positive width or
+            height, or bad offset or stride.
+          - INVALID_WL_BUFFER, in case the cause for failure is unknown or
+            plaform specific.
+        - the server creates an invalid wl_buffer, marks it as failed and
+          sends a 'failed' event to the client. The result of using this
+          invalid wl_buffer as an argument in any request by the client is
+          defined by the compositor implementation.
+
+        This takes the same arguments as a 'create' request, and obeys the
+        same restrictions.
+      </description>
+      <arg name="buffer_id" type="new_id" interface="wl_buffer"
+           summary="id for the newly created wl_buffer"/>
+      <arg name="width" type="int" summary="base plane width in pixels"/>
+      <arg name="height" type="int" summary="base plane height in pixels"/>
+      <arg name="format" type="uint" summary="DRM_FORMAT code"/>
+      <arg name="flags" type="uint" summary="see enum flags"/>
+    </request>
+
   </interface>
 
 </protocol>

commit ab228a67214e380c4a13242189f1478997435938
Author: Yong Bakos <ybakos@humanoriented.com>
Date:   Mon Jan 23 06:18:25 2017 -0800

    linux-dmabuf-unstable: Use standard copyright notice
    
    Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
    Reviewed-by: Daniel Stone <daniels@collabora.com>

diff --git a/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml b/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
index 60240f9..ed2c4bb 100644
--- a/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
+++ b/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
@@ -4,26 +4,24 @@
   <copyright>
     Copyright © 2014, 2015 Collabora, Ltd.
 
-    Permission to use, copy, modify, distribute, and sell this
-    software and its documentation for any purpose is hereby granted
-    without fee, provided that the above copyright notice appear in
-    all copies and that both that copyright notice and this permission
-    notice appear in supporting documentation, and that the name of
-    the copyright holders not be used in advertising or publicity
-    pertaining to distribution of the software without specific,
-    written prior permission.  The copyright holders make no
-    representations about the suitability of this software for any
-    purpose.  It is provided "as is" without express or implied
-    warranty.
-
-    THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-    SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-    FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-    SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-    AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-    ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-    THIS SOFTWARE.
+    Permission is hereby granted, free of charge, to any person obtaining a
+    copy of this software and associated documentation files (the "Software"),
+    to deal in the Software without restriction, including without limitation
+    the rights to use, copy, modify, merge, publish, distribute, sublicense,
+    and/or sell copies of the Software, and to permit persons to whom the
+    Software is furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice (including the next
+    paragraph) shall be included in all copies or substantial portions of the
+    Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+    THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+    DEALINGS IN THE SOFTWARE.
   </copyright>
 
   <interface name="zwp_linux_dmabuf_v1" version="1">

commit 375385e3d2372604618f2b2adebc57e304b4268c
Author: Mike Blumenkrantz <zmike@osg.samsung.com>
Date:   Mon Dec 19 11:56:38 2016 -0500

    xdg-shell: require popups to intersect with or be adjacent to parent surfaces
    
    some restrictions must be placed on this or else it becomes legal for
    the compositor to place popups in unexpected locations
    
    Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
    Reviewed-by: Jonas Ådahl <jadahl@gmail.com>

diff --git a/unstable/xdg-shell/xdg-shell-unstable-v6.xml b/unstable/xdg-shell/xdg-shell-unstable-v6.xml
index e49d74f..1c0f924 100644
--- a/unstable/xdg-shell/xdg-shell-unstable-v6.xml
+++ b/unstable/xdg-shell/xdg-shell-unstable-v6.xml
@@ -118,7 +118,9 @@
       child surface relative to a parent surface. Rules can be defined to ensure
       the child surface remains within the visible area's borders, and to
       specify how the child surface changes its position, such as sliding along
-      an axis, or flipping around a rectangle.
+      an axis, or flipping around a rectangle. These positioner-created rules are
+      constrained by the requirement that a child surface must intersect with or
+      be at least partially adjacent to its parent surface.
 
       See the various requests for details about possible rules.
 
@@ -941,7 +943,8 @@
       The x and y arguments passed when creating the popup object specify
       where the top left of the popup should be placed, relative to the
       local surface coordinates of the parent surface. See
-      xdg_surface.get_popup.
+      xdg_surface.get_popup. An xdg_popup must intersect with or be at least
+      partially adjacent to its parent surface.
 
       The client must call wl_surface.commit on the corresponding wl_surface
       for the xdg_popup state to take effect.

commit 642dd7af507d8f1c618b8a1397aba649681f8bcd
Author: Varad Gautam <varad.gautam@collabora.com>
Date:   Mon Nov 21 15:47:22 2016 +0530

    linux-dmabuf: clarify format event description
    
    clearly state the request name in format event to avoid abmiguous
    interpretation between 'zwp_linux_buffer_params_v1::create' and
    'zwp_linux_dmabuf_v1::create_params' requests.
    
    v2: grammar fixup (Yong Bakos)
    
    Signed-off-by: Varad Gautam <varad.gautam@collabora.com>
    Suggested-by: Yong Bakos <ybakos@humanoriented.com>
    Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
    Reviewed-by: Daniel Stone <daniels@collabora.com>

diff --git a/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml b/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
index a07540e..60240f9 100644
--- a/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
+++ b/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
@@ -98,7 +98,8 @@
         binds to this interface. A roundtrip after binding guarantees
         that the client has received all supported formats.
 
-        For the definition of the format codes, see create request.
+        For the definition of the format codes, see the
+        zwp_linux_buffer_params_v1::create request.
 
         XXX: Can a compositor ever enumerate them?
       </description>

commit 59b6e208e09a5d2f241965f907a1f05ecbf7ba68
Author: Yong Bakos <ybakos@humanoriented.com>
Date:   Mon Oct 31 06:43:52 2016 -0700

    (multiple): Remove inconsistent line breaks
    
    Enum entries and message arguments are sometimes preceded by a blank line, but
    often aren't.
    
    Standardize the format of the protocol specification by removing blank lines
    preceding a list of message arguments and enum entries.
    
    Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
    Reviewed-by: Daniel Stone <daniels@collabora.com>

diff --git a/stable/presentation-time/presentation-time.xml b/stable/presentation-time/presentation-time.xml
index e449b37..a46994c 100644
--- a/stable/presentation-time/presentation-time.xml
+++ b/stable/presentation-time/presentation-time.xml
@@ -81,7 +81,6 @@
         For details on what information is returned, see the
         presentation_feedback interface.
       </description>
-
       <arg name="surface" type="object" interface="wl_surface"
            summary="target surface"/>
       <arg name="callback" type="new_id" interface="wp_presentation_feedback"
@@ -120,7 +119,6 @@
         recommended. Clients must be able to query the current clock
         value directly, not by asking the compositor.
       </description>
-
       <arg name="clk_id" type="uint" summary="platform clock identifier"/>
     </event>
 
@@ -152,7 +150,6 @@
         the synchronized output. If a client has not bound to the
         right wl_output global at all, this event is not sent.
       </description>
-
       <arg name="output" type="object" interface="wl_output"
            summary="presentation output"/>
     </event>
@@ -192,7 +189,6 @@
         Possible zero-copy cases include direct scanout of a
         fullscreen surface and a surface on a hardware overlay.
       </description>
-
       <entry name="vsync" value="0x1" summary="presentation was vsync'd"/>
       <entry name="hw_clock" value="0x2"
              summary="hardware provided the presentation timestamp"/>
@@ -246,7 +242,6 @@
         a way to query the refresh count, then the arguments seq_hi
         and seq_lo must be zero.
       </description>
-
       <arg name="tv_sec_hi" type="uint"
            summary="high 32 bits of the seconds part of the presentation timestamp"/>
       <arg name="tv_sec_lo" type="uint"
diff --git a/stable/viewporter/viewporter.xml b/stable/viewporter/viewporter.xml
index 5d006c0..c732d8c 100644
--- a/stable/viewporter/viewporter.xml
+++ b/stable/viewporter/viewporter.xml
@@ -54,7 +54,6 @@
 	a wp_viewport object associated, the viewport_exists
 	protocol error is raised.
       </description>
-
       <arg name="id" type="new_id" interface="wp_viewport"
            summary="the new viewport interface id"/>
       <arg name="surface" type="object" interface="wl_surface"
@@ -159,7 +158,6 @@
 	The crop and scale state is double-buffered state, and will be
 	applied on the next wl_surface.commit.
       </description>
-
       <arg name="x" type="fixed" summary="source rectangle x"/>
       <arg name="y" type="fixed" summary="source rectangle y"/>
       <arg name="width" type="fixed" summary="source rectangle width"/>
@@ -180,7 +178,6 @@
 	The crop and scale state is double-buffered state, and will be
 	applied on the next wl_surface.commit.
       </description>
-
       <arg name="width" type="int" summary="surface width"/>
       <arg name="height" type="int" summary="surface height"/>
     </request>
diff --git a/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml b/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
index 3b4861f..a07540e 100644
--- a/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
+++ b/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
@@ -127,22 +127,16 @@
     <enum name="error">
       <entry name="already_used" value="0"
              summary="the dmabuf_batch object has already been used to create a wl_buffer"/>
-
       <entry name="plane_idx" value="1"
              summary="plane index out of bounds"/>
-
       <entry name="plane_set" value="2"
              summary="the plane index was already set"/>
-
       <entry name="incomplete" value="3"
              summary="missing or too many planes to create a buffer"/>
-
       <entry name="invalid_format" value="4"
              summary="format not supported"/>
-
       <entry name="invalid_dimensions" value="5"
              summary="invalid width or height"/>
-
       <entry name="out_of_bounds" value="6"
              summary="offset + stride * height goes out of dmabuf bounds"/>
     </enum>
@@ -170,7 +164,6 @@
         The error PLANE_SET is raised if attempting to set a plane that
         was already set.
       </description>
-
       <arg name="fd" type="fd" summary="dmabuf fd"/>
       <arg name="plane_idx" type="uint" summary="plane index"/>
       <arg name="offset" type="uint" summary="offset in bytes"/>
diff --git a/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml b/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml
index 4b95a5c..4e67a13 100644
--- a/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml
+++ b/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml
@@ -140,7 +140,6 @@
 	objects of the same seat. wl_pointer.axis and wl_pointer.button events
 	are unaffected.
       </description>
-
       <arg name="id" type="new_id" interface="zwp_locked_pointer_v1"/>
       <arg name="surface" type="object" interface="wl_surface"
 	   summary="surface to lock pointer to"/>
@@ -171,7 +170,6 @@
 	state. See the the description of wp_confined_pointer for further
 	information.
       </description>
-
       <arg name="id" type="new_id" interface="zwp_confined_pointer_v1"/>
       <arg name="surface" type="object" interface="wl_surface"
 	   summary="surface to lock pointer to"/>
@@ -231,7 +229,6 @@
 	effect when the associated surface gets it pending state applied. See
 	wl_surface.commit for details.
       </description>
-
       <arg name="surface_x" type="fixed"
 	   summary="surface-local x coordinate"/>
       <arg name="surface_y" type="fixed"
@@ -248,7 +245,6 @@
 
 	For details about the lock region, see wp_locked_pointer.
       </description>
-
       <arg name="region" type="object" interface="wl_region" allow-null="true"
 	   summary="region of surface"/>
     </request>
@@ -317,7 +313,6 @@
 
 	For details about the confine region, see wp_confined_pointer.
       </description>
-
       <arg name="region" type="object" interface="wl_region" allow-null="true"
 	   summary="region of surface"/>
     </request>
diff --git a/unstable/relative-pointer/relative-pointer-unstable-v1.xml b/unstable/relative-pointer/relative-pointer-unstable-v1.xml
index 24935a3..ca6f81d 100644
--- a/unstable/relative-pointer/relative-pointer-unstable-v1.xml
+++ b/unstable/relative-pointer/relative-pointer-unstable-v1.xml
@@ -68,7 +68,6 @@
 	Create a relative pointer interface given a wl_pointer object. See the
 	wp_relative_pointer interface for more details.
       </description>
-
       <arg name="id" type="new_id" interface="zwp_relative_pointer_v1"/>
       <arg name="pointer" type="object" interface="wl_pointer"/>
     </request>
@@ -119,7 +118,6 @@
 	from a wl_pointer object of the same seat that the wp_relative_pointer
 	object is associated with.
       </description>
-
       <arg name="utime_hi" type="uint"
 	   summary="high 32 bits of a 64 bit timestamp with microsecond granularity"/>
       <arg name="utime_lo" type="uint"
diff --git a/unstable/tablet/tablet-unstable-v1.xml b/unstable/tablet/tablet-unstable-v1.xml
index c5f58e9..6db9c05 100644
--- a/unstable/tablet/tablet-unstable-v1.xml
+++ b/unstable/tablet/tablet-unstable-v1.xml
@@ -542,7 +542,6 @@
 	wp_tablet_tool.proximity_in and wp_tablet_tool.proximity_out for
 	details.
       </description>
-
       <arg name="serial" type="uint"/>
       <arg name="button" type="uint" summary="The button whose state has changed"/>
       <arg name="state" type="uint" enum="button_state" summary="Whether the button was pressed or released"/>
diff --git a/unstable/tablet/tablet-unstable-v2.xml b/unstable/tablet/tablet-unstable-v2.xml
index 728a3df..b286d96 100644
--- a/unstable/tablet/tablet-unstable-v2.xml
+++ b/unstable/tablet/tablet-unstable-v2.xml
@@ -556,7 +556,6 @@
 	wp_tablet_tool.proximity_in and wp_tablet_tool.proximity_out for
 	details.
       </description>
-
       <arg name="serial" type="uint"/>
       <arg name="button" type="uint" summary="The button whose state has changed"/>
       <arg name="state" type="uint" enum="button_state" summary="Whether the button was pressed or released"/>
diff --git a/unstable/xdg-foreign/xdg-foreign-unstable-v1.xml b/unstable/xdg-foreign/xdg-foreign-unstable-v1.xml
index c6f5775..062b090 100644


Reply to: