summaryrefslogtreecommitdiff
path: root/protocol/wayland.xml
diff options
context:
space:
mode:
authorPekka Paalanen <ppaalanen@gmail.com>2012-10-10 12:47:48 +0300
committerKristian Høgsberg <krh@bitplanet.net>2012-10-10 22:01:17 -0400
commitb61c0f47d5de3731e484b54dc3e6da3b81c81711 (patch)
tree0f0536d98cb93d2d1998465e5ba1f2fcfc01ee49 /protocol/wayland.xml
parent39624020fca181e81996915854420888ca8196aa (diff)
protocol: clarify input region on drags and pointers
Drag icon and cursor surfaces must never receive input, so their input region is always empty. Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
Diffstat (limited to 'protocol/wayland.xml')
-rw-r--r--protocol/wayland.xml20
1 files changed, 16 insertions, 4 deletions
diff --git a/protocol/wayland.xml b/protocol/wayland.xml
index 4c089b8..e5c8c91 100644
--- a/protocol/wayland.xml
+++ b/protocol/wayland.xml
@@ -337,8 +337,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"/>
@@ -747,7 +752,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
@@ -869,11 +876,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"/>