pub struct GrabKeyboard {
pub owner_events: bool,
pub grab_window: Window,
pub time: Timestamp,
pub pointer_mode: GrabMode,
pub keyboard_mode: GrabMode,
}Expand description
Grab the keyboard
Actively grabs control of the keyboard and generates FocusIn and FocusOut events. Further key events are reported only to the grabbing client.
Any active keyboard grab by this client is overridden. If the keyboard is
actively grabbed by some other client, AlreadyGrabbed is returned. If
grab_window is not viewable, GrabNotViewable is returned. If the keyboard
is frozen by an active grab of another client, GrabFrozen is returned. If the
specified time is earlier than the last-keyboard-grab time or later than the
current X server time, GrabInvalidTime is returned. Otherwise, the
last-keyboard-grab time is set to the specified time.
§Example
// Grabs the keyboard actively
let cookie = conn.send_request(&x::GrabKeyboard {
owner_events: true, // get all pointer events specified by the following mask
grab_window: screen.root(), // grab the root window
time: x::CURRENT_TIME,
pointer_mode: x::GrabMode::Async, // process events as normal, do not require sync
keyboard_mode: x::GrabMode::Async,
});
let reply = conn.wait_for_reply(cookie)?;
assert!(reply.status() == x::GrabStatus::Success, "GrabKeyboard did not succeed");This request replies GrabKeyboardReply.
Associated cookie types are GrabKeyboardCookie and GrabKeyboardCookieUnchecked.
Fields§
§owner_events: boolIf 1, the grab_window will still get the pointer events. If 0, events are not
reported to the grab_window.
grab_window: WindowSpecifies the window on which the pointer should be grabbed.
time: TimestampTimestamp to avoid race conditions when running X over the network.
The special value XCB_CURRENT_TIME will be replaced with the current server
time.
pointer_mode: GrabMode§keyboard_mode: GrabModeTrait Implementations§
Source§impl Clone for GrabKeyboard
impl Clone for GrabKeyboard
Source§fn clone(&self) -> GrabKeyboard
fn clone(&self) -> GrabKeyboard
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more