pub fn set_input_focus<Conn, A, B>(
    conn: &Conn,
    revert_to: InputFocus,
    focus: A,
    time: B
) -> Result<VoidCookie<'_, Conn>, ConnectionError>
where Conn: RequestConnection + ?Sized, A: Into<Window>, B: Into<Timestamp>,
Expand description

Sets input focus.

Changes the input focus and the last-focus-change time. If the specified time is earlier than the current last-focus-change time, the request is ignored (to avoid race conditions when running X over the network).

A FocusIn and FocusOut event is generated when focus is changed.

Fields

  • focus - The window to focus. All keyboard events will be reported to this window. The window must be viewable (TODO), or a xcb_match_error_t occurs (TODO).

If focus is XCB_NONE (TODO), all keyboard events are discarded until a new focus window is set.

If focus is XCB_POINTER_ROOT (TODO), focus is on the root window of the screen on which the pointer is on currently.

  • time - Timestamp to avoid race conditions when running X over the network.

The special value XCB_CURRENT_TIME will be replaced with the current server time.

  • revert_to - Specifies what happens when the focus window becomes unviewable (if focus is neither XCB_NONE nor XCB_POINTER_ROOT).

Errors

  • Window - The specified focus window does not exist.
  • Match - The specified focus window is not viewable.
  • Value - TODO: Reasons?

See

  • FocusIn: event
  • FocusOut: event