Struct wayland_server::protocol::wl_keyboard::WlKeyboard
source · pub struct WlKeyboard { /* private fields */ }
Expand description
keyboard input device
The wl_keyboard interface represents one or more keyboards associated with a seat.
Each wl_keyboard has the following logical state:
- an active surface (possibly null),
- the keys currently logically down,
- the active modifiers,
- the active group.
By default, the active surface is null, the keys currently logically down are empty, the active modifiers and the active group are 0.
See also the Request enum for this interface.
Implementations§
source§impl WlKeyboard
impl WlKeyboard
sourcepub fn keymap(&self, format: KeymapFormat, fd: BorrowedFd<'_>, size: u32)
pub fn keymap(&self, format: KeymapFormat, fd: BorrowedFd<'_>, size: u32)
keyboard mapping
This event provides a file descriptor to the client which can be memory-mapped in read-only mode to provide a keyboard mapping description.
From version 7 onwards, the fd must be mapped with MAP_PRIVATE by the recipient, as MAP_SHARED may fail.
sourcepub fn enter(&self, serial: u32, surface: &WlSurface, keys: Vec<u8>)
pub fn enter(&self, serial: u32, surface: &WlSurface, keys: Vec<u8>)
enter event
Notification that this seat’s keyboard focus is on a certain surface.
The compositor must send the wl_keyboard.modifiers event after this event.
In the wl_keyboard logical state, this event sets the active surface to the surface argument and the keys currently logically down to the keys in the keys argument. The compositor must not send this event if the wl_keyboard already had an active surface immediately before this event.
sourcepub fn leave(&self, serial: u32, surface: &WlSurface)
pub fn leave(&self, serial: u32, surface: &WlSurface)
leave event
Notification that this seat’s keyboard focus is no longer on a certain surface.
The leave notification is sent before the enter notification for the new focus.
In the wl_keyboard logical state, this event resets all values to their defaults. The compositor must not send this event if the active surface of the wl_keyboard was not equal to the surface argument immediately before this event.
sourcepub fn key(&self, serial: u32, time: u32, key: u32, state: KeyState)
pub fn key(&self, serial: u32, time: u32, key: u32, state: KeyState)
key event
A key was pressed or released. The time argument is a timestamp with millisecond granularity, with an undefined base.
The key is a platform-specific key code that can be interpreted by feeding it to the keyboard mapping (see the keymap event).
If this event produces a change in modifiers, then the resulting wl_keyboard.modifiers event must be sent after this event.
In the wl_keyboard logical state, this event adds the key to the keys currently logically down (if the state argument is pressed) or removes the key from the keys currently logically down (if the state argument is released). The compositor must not send this event if the wl_keyboard did not have an active surface immediately before this event. The compositor must not send this event if state is pressed (resp. released) and the key was already logically down (resp. was not logically down) immediately before this event.
sourcepub fn modifiers(
&self,
serial: u32,
mods_depressed: u32,
mods_latched: u32,
mods_locked: u32,
group: u32,
)
pub fn modifiers( &self, serial: u32, mods_depressed: u32, mods_latched: u32, mods_locked: u32, group: u32, )
modifier and group state
Notifies clients that the modifier and/or group state has changed, and it should update its local state.
The compositor may send this event without a surface of the client having keyboard focus, for example to tie modifier information to pointer focus instead. If a modifier event with pressed modifiers is sent without a prior enter event, the client can assume the modifier state is valid until it receives the next wl_keyboard.modifiers event. In order to reset the modifier state again, the compositor can send a wl_keyboard.modifiers event with no pressed modifiers.
In the wl_keyboard logical state, this event updates the modifiers and group.
sourcepub fn repeat_info(&self, rate: i32, delay: i32)
pub fn repeat_info(&self, rate: i32, delay: i32)
repeat rate and delay
Informs the client about the keyboard’s repeat rate and delay.
This event is sent as soon as the wl_keyboard object has been created, and is guaranteed to be received by the client before any key press event.
Negative values for either rate or delay are illegal. A rate of zero will disable any repeating (regardless of the value of delay).
This event can be sent later on as well with a new value if necessary, so clients should continue listening for the event past the creation of wl_keyboard.
Trait Implementations§
source§impl Borrow<ObjectId> for WlKeyboard
impl Borrow<ObjectId> for WlKeyboard
source§impl Clone for WlKeyboard
impl Clone for WlKeyboard
source§fn clone(&self) -> WlKeyboard
fn clone(&self) -> WlKeyboard
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for WlKeyboard
impl Debug for WlKeyboard
source§impl Hash for WlKeyboard
impl Hash for WlKeyboard
source§impl PartialEq<Weak<WlKeyboard>> for WlKeyboard
impl PartialEq<Weak<WlKeyboard>> for WlKeyboard
source§impl PartialEq for WlKeyboard
impl PartialEq for WlKeyboard
source§impl Resource for WlKeyboard
impl Resource for WlKeyboard
source§fn object_data(&self) -> Option<&Arc<dyn Any + Send + Sync>>
fn object_data(&self) -> Option<&Arc<dyn Any + Send + Sync>>
source§fn handle(&self) -> &WeakHandle
fn handle(&self) -> &WeakHandle
source§fn from_id(conn: &DisplayHandle, id: ObjectId) -> Result<Self, InvalidId>
fn from_id(conn: &DisplayHandle, id: ObjectId) -> Result<Self, InvalidId>
source§fn send_event(&self, evt: Self::Event<'_>) -> Result<(), InvalidId>
fn send_event(&self, evt: Self::Event<'_>) -> Result<(), InvalidId>
source§fn parse_request(
conn: &DisplayHandle,
msg: Message<ObjectId, OwnedFd>,
) -> Result<(Self, Self::Request), DispatchError>
fn parse_request( conn: &DisplayHandle, msg: Message<ObjectId, OwnedFd>, ) -> Result<(Self, Self::Request), DispatchError>
source§fn write_event<'a>(
&self,
conn: &DisplayHandle,
msg: Self::Event<'a>,
) -> Result<Message<ObjectId, BorrowedFd<'a>>, InvalidId>
fn write_event<'a>( &self, conn: &DisplayHandle, msg: Self::Event<'a>, ) -> Result<Message<ObjectId, BorrowedFd<'a>>, InvalidId>
source§fn is_alive(&self) -> bool
fn is_alive(&self) -> bool
impl Eq for WlKeyboard
Auto Trait Implementations§
impl Freeze for WlKeyboard
impl !RefUnwindSafe for WlKeyboard
impl Send for WlKeyboard
impl Sync for WlKeyboard
impl Unpin for WlKeyboard
impl !UnwindSafe for WlKeyboard
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
)§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.