[neon/backports-noble/wayland-noble/Neon/release] protocol: protocol: add wl_pointer.warp event

Jonas Ådahl null at kde.org
Sat Aug 22 05:55:34 BST 2026


Git commit 165504a90edd7d6e51dd42d11f9dd0e8c9384609 by Jonas Ådahl, on behalf of Lu YaNing.
Committed on 08/06/2026 at 10:29.
Pushed by carlosdem into branch 'Neon/release'.

protocol: add wl_pointer.warp event

The original wl_pointer.button event does not contain the position information.
In some scenarios, the client cannot obtain the correct position information.
For example, when the mouse focus is on a button and the mouse does not move
but the window size changes, the client cannot update the position information
through the motion event, resulting in incorrect mouse position.

Therefore, This event should be sent when the local coordinates of a pointer
change as a result of surface being moved/resized/fullscreened.

Signed-off-by: Lu YaNing <luyaning at uniontech.com>

M  +27   -5    protocol/wayland.xml

https://invent.kde.org/neon/backports-noble/wayland-noble/-/commit/165504a90edd7d6e51dd42d11f9dd0e8c9384609

diff --git a/protocol/wayland.xml b/protocol/wayland.xml
index a4e274f..aa5fafd 100644
--- a/protocol/wayland.xml
+++ b/protocol/wayland.xml
@@ -1984,7 +1984,7 @@
     </request>
    </interface>
 
-  <interface name="wl_seat" version="10">
+  <interface name="wl_seat" version="11">
     <description summary="group of input devices">
       A seat is a group of keyboards, pointer and touch devices. This
       object is published as a global during start up, or when such a
@@ -2118,7 +2118,7 @@
 
   </interface>
 
-  <interface name="wl_pointer" version="10">
+  <interface name="wl_pointer" version="11">
     <description summary="pointer input device">
       The wl_pointer interface represents one or more input devices,
       such as mice, which control the pointer location and pointer_focus
@@ -2228,7 +2228,7 @@
       <description summary="pointer button event">
         Mouse button click and release notifications.
 
-        The location of the click is given by the last motion or
+        The location of the click is given by the last motion, warp or
         enter event.
         The time argument is a timestamp with millisecond
         granularity, with an undefined base.
@@ -2529,9 +2529,31 @@
       <arg name="direction" type="uint" enum="axis_relative_direction"
           summary="physical direction relative to axis motion"/>
     </event>
+
+    <!-- Version 11 additions -->
+
+    <event name="warp" since="11">
+      <description summary="pointer warp event">
+	Notification of pointer location change within a surface.
+
+	This location change is not due to events on the input device,
+	but because either the surface under the pointer was moved and
+	thus the relative position of the pointer changed, or because
+	the compositor changed the pointer position in response to an
+	event like pointer confinement being exited.
+
+	The arguments surface_x and surface_y are the location relative to
+	the focused surface.
+
+	This event must not occur in the same wl_pointer.frame as a
+	wl_pointer.enter or wl_pointer.motion event.
+      </description>
+      <arg name="surface_x" type="fixed" summary="surface-local x coordinate"/>
+      <arg name="surface_y" type="fixed" summary="surface-local y coordinate"/>
+    </event>
   </interface>
 
-  <interface name="wl_keyboard" version="10">
+  <interface name="wl_keyboard" version="11">
     <description summary="keyboard input device">
       The wl_keyboard interface represents one or more keyboards
       associated with a seat.
@@ -2712,7 +2734,7 @@
     </event>
   </interface>
 
-  <interface name="wl_touch" version="10">
+  <interface name="wl_touch" version="11">
     <description summary="touchscreen input device">
       The wl_touch interface represents a touchscreen
       associated with a seat.



More information about the Neon-commits mailing list