pub struct Keyboard(/* private fields */);Implementations§
source§impl Keyboard
impl Keyboard
sourcepub fn destroyed(&self, serial: u32)
pub fn destroyed(&self, serial: u32)
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.
sourcepub fn keymap(&self, keymap_type: KeymapType, size: u32, keymap: BorrowedFd<'_>)
pub fn keymap(&self, keymap_type: KeymapType, size: u32, keymap: BorrowedFd<'_>)
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.
sourcepub fn key(&self, key: u32, state: KeyState)
pub fn key(&self, key: u32, state: KeyState)
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.
sourcepub fn modifiers(
&self,
serial: u32,
depressed: u32,
locked: u32,
latched: u32,
group: u32,
)
pub fn modifiers( &self, serial: u32, depressed: u32, locked: u32, latched: u32, group: u32, )
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.
Trait Implementations§
impl Eq for Keyboard
impl StructuralPartialEq for Keyboard
Auto Trait Implementations§
impl Freeze for Keyboard
impl RefUnwindSafe for Keyboard
impl Send for Keyboard
impl Sync for Keyboard
impl Unpin for Keyboard
impl UnwindSafe for Keyboard
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit)