---
name: "XtGrabKey"
section: "3x"
platform: "linux"
package: "libxt-dev"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/XtGrabKey/3x"
---

# XtGrabKey(3x)

manage grabs

## NAME

XtGrabKey, XtUngrabKey, XtGrabKeyboard, XtUngrabKeyboard, XtGrabButton, XtUngrabButton, XtGrabPointer, XtUngrabPointer - manage grabs

## SYNTAX

void XtGrabKey(Widget *widget*, KeyCode *keycode*, Modifiers *modifiers*, Boolean *owner\_events*, int *pointer\_mode*, int *keyboard\_mode*);

void XtUngrabKey(Widget *widget*, KeyCode *keycode*, Modifiers *modifiers*);

int XtGrabKeyboard(Widget *widget*, Boolean *owner\_events*, int *pointer\_mode*, int *keyboard\_mode*, Time *time*);

void XtUngrabKeyboard(Widget *widget*, Time *time*);

void XtGrabButton(Widget *widget*, int *button*, Modifiers *modifiers*, Boolean *owner\_events*, unsigned int *event\_mask*, int *pointer\_mode*, int *keyboard\_mode*, Window *confine\_to*, Cursor *cursor*);

void XtUngrabButton(Widget *widget*, KeyCode *button*, Modifiers *modifiers*);

int XtGrabPointer(Widget *widget*, Boolean *owner\_events*, unsigned int *event\_mask*, int *pointer\_mode*, int *keyboard\_mode*, Window *confine\_to*, Cursor *cursor*, Time *time*);

void XtUngrabPointer(Widget *widget*, Time *time*);

## ARGUMENTS

- *widget*

  Specifies the widget in whose window the grab will occur. Must be of class Core or a subclass thereof.

- *keycode*

  - *modifiers*

  - *owner\_events*

  - *pointer\_mode*

  - *keyboard\_mode*

  - *time*

  - *button*

  - *confine\_to*

  - *cursor*

  Specifies arguments to the associated Xlib function call.

## DESCRIPTION

*XtGrabKey* calls *XGrabKey* specifying the widget's window as the grab window if the widget is realized. The remaining arguments are exactly as for *XGrabKey*. If the widget is not realized, or is later unrealized, the call to *XGrabKey* will be performed (again) when the widget is realized and its window becomes mapped. In the future, if *XtDispatchEvent* is called with a *KeyPress* event matching the specified keycode and modifiers (which may be *AnyKey* or *AnyModifier*, respectively) for the widget's window, the Intrinsics will call *XtUngrabKeyboard* with the timestamp from the *KeyPress* event if either of the following conditions is true:

- •

  There is a modal cascade and the widget is not in the active subset of the cascade and the keyboard was not previously grabbed, or

- •

  *XFilterEvent* returns *True*.

*XtUngrabKey* calls *XUngrabKey* specifying the widget's window as the ungrab window if the widget is realized. The remaining arguments are exactly as for *XUngrabKey*. If the widget is not realized, *XtUngrabKey* removes a deferred *XtGrabKey* request, if any, for the specified widget, keycode, and modifiers.

If the specified widget is realized *XtGrabKeyboard* calls *XGrabKeyboard* specifying the widget's window as the grab window. The remaining arguments and return value are exactly as for *XGrabKeyboard*. If the widget is not realized, *XtGrabKeyboard* immediately returns *GrabNotViewable*. No future ungrab is implied by *XtGrabKeyboard*.

*XtUngrabKeyboard* calls *XUngrabKeyboard* with the specified time.

*XtGrabButton* calls *XGrabButton* specifying the widget's window as the grab window if the widget is realized. The remaining arguments are exactly as for *XGrabButton*. If the widget is not realized, or is later unrealized, the call to *XGrabButton* will be performed (again) when the widget is realized and its window becomes mapped. In the future, if *XtDispatchEvent* is called with a *ButtonPress* event matching the specified button and modifiers (which may be *AnyButton* or *AnyModifier*, respectively) for the widget's window, the Intrinsics will call *XtUngrabPointer* with the timestamp from the *ButtonPress* event if either of the following conditions is true:

- •

  There is a modal cascade and the widget is not in the active subset of the cascade and the pointer was not previously grabbed, or

- •

  *XFilterEvent* returns *True*.

*XtUngrabButton* calls *XUngrabButton* specifying the widget's window as the ungrab window if the widget is realized. The remaining arguments are exactly as for *XUngrabButton*. If the widget is not realized, *XtUngrabButton* removes a deferred *XtGrabButton* request, if any, for the specified widget, button, and modifiers.

*XtGrabPointer* calls *XGrabPointer* specifying the widget's window as the grab window. The remaining arguments and return value are exactly as for *XGrabPointer*. If the widget is not realized, *XtGrabPointer* immediately returns *GrabNotViewable*. No future ungrab is implied by *XtGrabPointer*.

*XtUngrabPointer* calls *XUngrabPointer* with the specified time.

## SEE ALSO

*X Toolkit Intrinsics - C Language Interface*\
 *Xlib - C Language X Interface*
