[go: up one dir, main page]

reis::ei::keyboard

Enum Event

source
#[non_exhaustive]
pub enum Event { Destroyed { serial: u32, }, Keymap { keymap_type: KeymapType, size: u32, keymap: OwnedFd, }, Key { key: u32, state: KeyState, }, Modifiers { serial: u32, depressed: u32, locked: u32, latched: u32, group: 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.
§

Destroyed

This keyboard has been removed and a client should release all associated resources.

This ei_keyboard object will be destroyed by the EIS implementation immmediately after after this event is sent and as such the client must not attempt to use it after that point.

Fields

§serial: u32

this event’s serial number

§

Keymap

Notification that this device has a keymap. Future key events must be interpreted by the client according to this keymap. For clients of ei_handshake.context_type sender it is the client’s responsibility to send the correct ei_keyboard.key keycodes to generate the expected keysym in the EIS implementation.

The keymap is constant for the lifetime of the device.

This event provides a file descriptor to the client which can be memory-mapped in read-only mode to provide a keyboard mapping description. The fd must be mapped with MAP_PRIVATE by the recipient, as MAP_SHARED may fail.

This event is optional and only sent immediately after the ei_keyboard object is created and before the ei_device.done event. It is a protocol violation to send this event after the ei_device.done event.

Fields

§keymap_type: KeymapType

the keymap type

§size: u32

the keymap size in bytes

§keymap: OwnedFd

file descriptor to the keymap

§

Key

See the ei_keyboard.key request for details.

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

It is a protocol violation to send a key down event in the same frame as a key up event for the same key in the same frame.

Fields

§key: u32
§state: KeyState
§

Modifiers

Notification that the EIS implementation has changed group or modifier states on this device, but not necessarily in response to an ei_keyboard.key event. Future ei_keyboard.key requests must take the new group or modifier state into account.

This event should not be sent in response to ei_keyboard.key events that change the group or modifier state according to the keymap. The client is expected to track such group or modifier states on its own.

A client must assume that all modifiers are lifted when it receives an ei_device.paused event. The EIS implementation must send this event after ei_device.resumed to notify the client of any nonzero modifier state.

This event does not reqire an ei_device.frame and should be processed immediately by the client.

This event is only sent for devices with an ei_keyboard.keymap.

Fields

§serial: u32

this event’s serial number

§depressed: u32

depressed modifiers

§locked: u32

locked modifiers

§latched: u32

latched modifiers

§group: u32

the keyboard group (layout)

Trait Implementations§

source§

impl Debug for Event

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Event

§

impl RefUnwindSafe for Event

§

impl Send for Event

§

impl Sync for Event

§

impl Unpin for Event

§

impl UnwindSafe for Event

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.