[PATCH wayland 2/4] protocol: clarify input region on drags and pointers

Pekka Paalanen ppaalanen at gmail.com
Wed Oct 10 02:47:48 PDT 2012


Drag icon and cursor surfaces must never receive input, so their input
region is always empty.

Signed-off-by: Pekka Paalanen <ppaalanen at gmail.com>
---
 protocol/wayland.xml |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/protocol/wayland.xml b/protocol/wayland.xml
index c45a404..6293f56 100644
--- a/protocol/wayland.xml
+++ b/protocol/wayland.xml
@@ -332,8 +332,13 @@
 	The icon surface is an optional (can be nil) surface that
 	provides an icon to be moved around with the cursor.  Initially,
 	the top-left corner of the icon surface is placed at the cursor
-	hotspot, but subsequent surface.attach request can move the
-	relative position.
+	hotspot, but subsequent wl_surface.attach request can move the
+	relative position. Attach requests must be confirmed with
+	wl_surface.commit as usual.
+
+	The current and pending input regions of the wl_surface are
+	cleared, and wl_surface.set_input_region is ignored until the
+	wl_surface is destroyed.
       </description>
       <arg name="source" type="object" interface="wl_data_source" allow-null="true"/>
       <arg name="origin" type="object" interface="wl_surface"/>
@@ -742,7 +747,9 @@
 
 	wl_surface.set_input_region changes the pending input region.
 	wl_surface.commit copies the pending region to the current region.
-	Otherwise the pending and current regions are never changed.
+	Otherwise the pending and current regions are never changed,
+	except cursor and icon surfaces are special cases, see
+	wl_pointer.set_cursor and wl_data_device.start_drag.
 
 	The initial value for input region is infinite. That means the whole
 	surface will accept input. Setting the pending input region has copy
@@ -864,11 +871,16 @@
 
 	On surface.attach requests to the pointer surface, hotspot_x
 	and hotspot_y are decremented by the x and y parameters
-	passed to the request.
+	passed to the request. Attach must be confirmed by
+	wl_surface.commit as usual.
 
 	The hotspot can also be updated by passing the current set
 	pointer surface to this request with new values for hotspot_x
 	and/or hotspot_y.
+
+	The current and pending input regions of the wl_surface are
+	cleared, and wl_surface.set_input_region is ignored until the
+	wl_surface is destroyed.
       </description>
 
       <arg name="serial" type="uint"/>
-- 
1.7.8.6



More information about the wayland-devel mailing list