Available on crate feature
wayland_frontend only.Expand description
Utilities for virtual keyboard support
This module provides you with utilities to handle virtual keyboard instances. It can be used standalone to implement virtual keyboards or together with an input method to pass through keys from the keyboard.
use smithay::{
delegate_seat, delegate_virtual_keyboard_manager,
};
use smithay::input::{Seat, SeatState, SeatHandler, pointer::CursorImageStatus};
use smithay::wayland::virtual_keyboard::VirtualKeyboardManagerState;
use smithay::reexports::wayland_server::{Display, protocol::wl_surface::WlSurface};
delegate_seat!(State);
// Delegate virtual keyboard handling for State to VirtualKeyboardManagerState.
delegate_virtual_keyboard_manager!(State);
let seat_state = SeatState::<State>::new();
// implement the required traits
impl SeatHandler for State {
type KeyboardFocus = WlSurface;
type PointerFocus = WlSurface;
type TouchFocus = WlSurface;
fn seat_state(&mut self) -> &mut SeatState<Self> {
&mut self.seat_state
}
fn focus_changed(&mut self, seat: &Seat<Self>, focused: Option<&WlSurface>) { unimplemented!() }
fn cursor_image(&mut self, seat: &Seat<Self>, image: CursorImageStatus) { unimplemented!() }
}
// Add the seat state to your state, create manager global and add client filter
// to avoid untrusted clients requesting a new keyboard
VirtualKeyboardManagerState::new::<State, _>(&display_handle, |_client| true);
Structsยง
- Virtual
Keyboard Manager Global Data - Data associated with a VirtualKeyboardManager global.
- Virtual
Keyboard Manager State - State of wp misc virtual keyboard protocol
- Virtual
Keyboard User Data - User data of ZwpVirtualKeyboardV1 object