#[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
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.
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
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.