Visit The New, Modern Unix Linux Community

Linux and UNIX Man Pages

Test Your Knowledge in Computers #969
Difficulty: Medium
The Linux kernel is a free and open-source, Unix-like operating system microkernel.
True or False?
Linux & Unix Commands - Search Man Pages

xgrabkeyboard(3) [hpux man page]

XGrabKeyboard() 														   XGrabKeyboard()

Name
  XGrabKeyboard - grab the keyboard.

Synopsis
  int XGrabKeyboard(display, grab_window, owner_events, pointer_mode,
	    keyboard_mode, time)
	Display *display;
	Window grab_window;
	Bool owner_events;
	int pointer_mode, keyboard_mode;
	Time time;

Arguments
  display   Specifies a connection to an X server; returned from XOpenDisplay().

  grab_window
	    Specifies the ID of the window that requires continuous keyboard input.

  owner_events
	    Specifies a boolean value of either True or False.	See the "Description" section below.

  pointer_mode
	    Controls processing of pointer events during the grab.  Pass either GrabModeSync or GrabModeAsync.

  keyboard_mode
	    Controls processing of keyboard events during the grab.  Pass either GrabModeSync or GrabModeAsync.

  time	    Specifies the time when the grab should take place.  Pass either a timestamp, expressed in milliseconds, or the constant Current-
	    Time.

Returns
  GrabSuccess on success.  AlreadyGrabbed, GrabNotViewable, GrabInvalidTime, or GrabFrozen on failure.

Description
  XGrabKeyboard() actively grabs control of the main keyboard.	Further key events are reported only to the grabbing  client.	This  request
  generates FocusIn and FocusOut events.

  XGrabKeyboard() processing is controlled by the value in the owner_events argument:

  o  If owner_events is False, all generated key events are reported to grab_window.

  o  If  owner_events  is  True, then if a generated key event would normally be reported to this client, it is reported normally.  Otherwise
     the event is reported to grab_window.

  Both KeyPress and KeyRelease events are always reported, independent of any event selection made by the client.

  XGrabKeyboard() processing of pointer events and keyboard events are controlled by pointer_mode and keyboard_mode:

  o  If the pointer_mode or keyboard_mode is GrabModeAsync, event processing for the respective device continues normally.

  o  For keyboard_mode GrabModeAsync only: if the keyboard was currently frozen by  this  client,  then  processing  of  keyboard  events  is
     resumed.

  o  If  the  pointer_mode or keyboard_mode is GrabModeSync, events for the respective device are queued by the server until a releasing XAl-
     lowEvents() request occurs or until the keyboard grab is released as described above.

  If the grab is successful, XGrabKeyboard() returns the constant GrabSuccess.	XGrabKeyboard() fails  under  the  following  conditions  and
  returns the following:

  o  If the keyboard is actively grabbed by some other client, it returns AlreadyGrabbed.

  o  If grab_window is not viewable, it returns GrabNotViewable.

  o  If time is earlier than the last keyboard grab time or later than the current server time, it returns GrabInvalidTime.

  o  If the pointer is frozen by an active grab of another client, the request fails with a status GrabFrozen.

  If the grab succeeds, the last keyboard grab time is set to the specified time, with CurrentTime replaced by the current X server time.

  For more information on grabbing, see Volume One, Chapter 9, The Keyboard and Pointer.

Errors
  BadValue
  BadWindow

See Also
  XChangeActivePointerGrab(),  XGrabButton(),  XGrabKey(),  XGrabPointer(),  XGrabServer(), XUngrabButton(), XUngrabKey(), XUngrabKeyboard(),
  XUngrabPointer(), XUngrabServer().

Xlib - Grabbing 														   XGrabKeyboard()

Check Out this Related Man Page

XGrabKeyboard(3)						  XLIB FUNCTIONS						  XGrabKeyboard(3)

NAME
XGrabKeyboard, XUngrabKeyboard - grab the keyboard SYNTAX
int XGrabKeyboard(Display *display, Window grab_window, Bool owner_events, int pointer_mode, int keyboard_mode, Time time); int XUngrabKeyboard(Display *display, Time time); ARGUMENTS
display Specifies the connection to the X server. grab_window Specifies the grab window. keyboard_mode Specifies further processing of keyboard events. You can pass GrabModeSync or GrabModeAsync. owner_events Specifies a Boolean value that indicates whether the keyboard events are to be reported as usual. pointer_mode Specifies further processing of pointer events. You can pass GrabModeSync or GrabModeAsync. time Specifies the time. You can pass either a timestamp or CurrentTime. DESCRIPTION
The XGrabKeyboard function actively grabs control of the keyboard and generates FocusIn and FocusOut events. Further key events are reported only to the grabbing client. XGrabKeyboard overrides any active keyboard grab by this client. If owner_events is False, all gen- erated key events are reported with respect to grab_window. If owner_events is True and if a generated key event would normally be reported to this client, it is reported normally; otherwise, the event is reported with respect to the grab_window. Both KeyPress and KeyRelease events are always reported, independent of any event selection made by the client. If the keyboard_mode argument is GrabModeAsync, keyboard event processing continues as usual. If the keyboard is currently frozen by this client, then processing of keyboard events is resumed. If the keyboard_mode argument is GrabModeSync, the state of the keyboard (as seen by client applications) appears to freeze, and the X server generates no further keyboard events until the grabbing client issues a releas- ing XAllowEvents call or until the keyboard grab is released. Actual keyboard changes are not lost while the keyboard is frozen; they are simply queued in the server for later processing. If pointer_mode is GrabModeAsync, pointer event processing is unaffected by activation of the grab. If pointer_mode is GrabModeSync, the state of the pointer (as seen by client applications) appears to freeze, and the X server generates no further pointer events until the grabbing client issues a releasing XAllowEvents call or until the keyboard grab is released. Actual pointer changes are not lost while the pointer is frozen; they are simply queued in the server for later processing. If the keyboard is actively grabbed by some other client, XGrabKeyboard fails and returns AlreadyGrabbed. If grab_window is not viewable, it fails and returns GrabNotViewable. If the keyboard is frozen by an active grab of another client, it fails and returns GrabFrozen. If the specified time is earlier than the last-keyboard-grab time or later than the current X server time, it fails and returns GrabInvalid- Time. Otherwise, the last-keyboard-grab time is set to the specified time (CurrentTime is replaced by the current X server time). XGrabKeyboard can generate BadValue and BadWindow errors. The XUngrabKeyboard function releases the keyboard and any queued events if this client has it actively grabbed from either XGrabKeyboard or XGrabKey. XUngrabKeyboard does not release the keyboard and any queued events if the specified time is earlier than the last-keyboard- grab time or is later than the current X server time. It also generates FocusIn and FocusOut events. The X server automatically performs an UngrabKeyboard request if the event window for an active keyboard grab becomes not viewable. DIAGNOSTICS
BadValue Some numeric value falls outside the range of values accepted by the request. Unless a specific range is specified for an argu- ment, the full range defined by the argument's type is accepted. Any argument defined as a set of alternatives can generate this error. BadWindow A value for a Window argument does not name a defined Window. SEE ALSO
XAllowEvents(3), XGrabButton(3), XGrabKey(3), XGrabPointer(3) Xlib - C Language X Interface X Version 11 libX11 1.5.0 XGrabKeyboard(3)

Featured Tech Videos