relative-pointer-unstable-v1

protocol for relative pointer motion events

(index)

This protocol specifies a set of interfaces used for making clients able to receive relative pointer events not obstructed by barriers (such as the monitor edge or other pointer barriers).

To start receiving relative pointer events, a client must first bind the global interface "wp_relative_pointer_manager" which, if a compositor supports relative pointer motion events, is exposed by the registry. After having created the relative pointer manager proxy object, the client uses it to create the actual relative pointer object using the "get_relative_pointer" request given a wl_pointer. The relative pointer motion events will then, when applicable, be transmitted via the proxy of the newly created relative pointer object. See the documentation of the relative pointer interface for more details.

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.

zwp_relative_pointer_manager_v1

get relative pointer objects

Interface
Version 1

A global interface used for getting the relative pointer object for a given pointer.

zwp_relative_pointer_manager_v1.destroy

destroy the relative pointer manager object

Destructor Request
Since Version 1

Used by the client to notify the server that it will no longer use this relative pointer manager object.

zwp_relative_pointer_manager_v1.get_relative_pointer

get a relative pointer object

Request
Since Version 1

Create a relative pointer interface given a wl_pointer object. See the wp_relative_pointer interface for more details.

ArgumentTypeDescription
idnew_id<zwp_relative_pointer_v1>

pointerobject<wl_pointer>

zwp_relative_pointer_v1

relative pointer object

Interface
Version 1

A wp_relative_pointer object is an extension to the wl_pointer interface used for emitting relative pointer events. It shares the same focus as wl_pointer objects of the same seat and will only emit events when it has focus.

zwp_relative_pointer_v1.destroy

release the relative pointer object

Destructor Request
Since Version 1

zwp_relative_pointer_v1.relative_motion

relative pointer motion

Event
Since Version 1

Relative x/y pointer motion from the pointer of the seat associated with this object.

A relative motion is in the same dimension as regular wl_pointer motion events, except they do not represent an absolute position. For example, moving a pointer from (x, y) to (x', y') would have the equivalent relative motion (x' - x, y' - y). If a pointer motion caused the absolute pointer position to be clipped by for example the edge of the monitor, the relative motion is unaffected by the clipping and will represent the unclipped motion.

This event also contains non-accelerated motion deltas. The non-accelerated delta is, when applicable, the regular pointer motion delta as it was before having applied motion acceleration and other transformations such as normalization.

Note that the non-accelerated delta does not represent 'raw' events as they were read from some device. Pointer motion acceleration is device- and configuration-specific and non-accelerated deltas and accelerated deltas may have the same value on some devices.

Relative motions are not coupled to wl_pointer.motion events, and can be sent in combination with such events, but also independently. There may also be scenarios where wl_pointer.motion is sent, but there is no relative motion. The order of an absolute and relative motion event originating from the same physical motion is not guaranteed.

If the client needs button events or focus state, it can receive them from a wl_pointer object of the same seat that the wp_relative_pointer object is associated with.

ArgumentTypeDescription
utime_hiuint

high 32 bits of a 64 bit timestamp with microsecond granularity

utime_louint

low 32 bits of a 64 bit timestamp with microsecond granularity

dxfixed

the x component of the motion vector

dyfixed

the y component of the motion vector

dx_unaccelfixed

the x component of the unaccelerated motion vector

dy_unaccelfixed

the y component of the unaccelerated motion vector

Copyright