[go: up one dir, main page]

reis::eis::scroll

Enum Request

source
#[non_exhaustive]
pub enum Request { Release, Scroll { x: f32, y: f32, }, ScrollDiscrete { x: i32, y: i32, }, ScrollStop { x: u32, y: u32, is_cancel: u32, }, }

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Release

Notification that the client is no longer interested in this object. The EIS implementation will release any resources related to this object and send the ei_scroll.destroyed event once complete.

§

Scroll

Generate a a smooth (pixel-precise) scroll event on this pointer. Clients must not send ei_scroll.scroll_discrete events for the same event, the EIS implementation is responsible for emulation of discrete scroll events.

It is a client bug to send this request more than once within the same ei_device.frame and the EIS implementation may ignore either or all such requests and/or disconnect the client.

It is a protocol violation to send this request for a client of an ei_handshake.context_type other than sender.

Fields

§x: f32

the x movement in logical pixels

§y: f32

the y movement in logical pixels

§

ScrollDiscrete

Generate a a discrete (e.g. wheel) scroll event on this pointer. Clients must not send ei_scroll.scroll events for the same event, the EIS implementation is responsible for emulation of smooth scroll events.

A discrete scroll event is based logical scroll units (equivalent to one mouse wheel click). The value for one scroll unit is 120, a fraction or multiple thereof represents a fraction or multiple of a wheel click.

It is a client bug to send this request more than once within the same ei_device.frame and the EIS implementation may ignore either or all such requests and/or disconnect the client.

It is a protocol violation to send this request for a client of an ei_handshake.context_type other than sender.

Fields

§x: i32

the x movement in fractions or multiples of 120

§y: i32

the y movement in fractions or multiples of 120

§

ScrollStop

Generate a a scroll stop or cancel event on this pointer.

A scroll stop event notifies the EIS implementation that the interaction causing a scroll motion previously triggered with ei_scroll.scroll or ei_scroll.scroll_discrete has stopped. For example, if all fingers are lifted off a touchpad, two-finger scrolling has logically stopped. The EIS implementation may use this information to e.g. start kinetic scrolling previously based on the previous finger speed.

If is_cancel is nonzero, the event represents a cancellation of the current interaction. This indicates that the interaction has stopped to the point where further (server-emulated) scroll events from this device are wrong.

It is a client bug to send this request more than once within the same ei_device.frame and the EIS implementation may ignore either or all such requests and/or disconnect the client.

It is a client bug to send this request for an axis that had a a nonzero value in either ei_scroll.scroll or ei_scroll.scroll_discrete in the current frame and the EIS implementation may ignore either or all such requests and/or disconnect the client.

It is a protocol violation to send this request for a client of an ei_handshake.context_type other than sender.

Fields

§x: u32

nonzero if this axis stopped scrolling

§y: u32

nonzero if this axis stopped scrolling

§is_cancel: u32

nonzero to indicate this is a cancel event

Trait Implementations§

source§

impl Debug for Request

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.