relative_pointer_unstable_v1 Module


class pywayland.protocol.relative_pointer_unstable_v1.ZwpRelativePointerV1

Relative pointer object

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

destroy() → 'None'

Request – opcode 0 (attached to Resource instance)

Release the relative pointer object

relative_motion(utime_hi: 'int', utime_lo: 'int', dx: 'float', dy: 'float', dx_unaccel: 'float', dy_unaccel: 'float') → 'None'

Event – opcode 0 (attached to Proxy instance)

Relative pointer motion

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 WlPointer 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 WlPointer.motion() events, and can be sent in combination with such events, but also independently. There may also be scenarios where WlPointer.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 WlPointer object of the same seat that the wp_relative_pointer object is associated with.

  • utime_hi (ArgumentType.Uint) – high 32 bits of a 64 bit timestamp with microsecond granularity
  • utime_lo (ArgumentType.Uint) – low 32 bits of a 64 bit timestamp with microsecond granularity
  • dx (ArgumentType.Fixed) – the x component of the motion vector
  • dy (ArgumentType.Fixed) – the y component of the motion vector
  • dx_unaccel (ArgumentType.Fixed) – the x component of the unaccelerated motion vector
  • dy_unaccel (ArgumentType.Fixed) – the y component of the unaccelerated motion vector


class pywayland.protocol.relative_pointer_unstable_v1.ZwpRelativePointerManagerV1

Get relative pointer objects

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

destroy() → 'None'

Request – opcode 0 (attached to Resource instance)

Destroy the relative pointer manager object

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

get_relative_pointer(pointer: 'WlPointer') → 'Proxy[ZwpRelativePointerV1]'

Request – opcode 1 (attached to Resource instance)

Get a relative pointer object

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

Parameters:pointer (WlPointer) –