Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
XGRABDEVICE(3)							XGRABDEVICE(3)

NAME
       XGrabDevice, XUngrabDevice - grab/release the specified extension
       device

SYNOPSIS
       #include	<X11/extensions/XInput.h>

       int XGrabDevice(	Display	*display,
			XDevice* device,
			Window grab_window,
			Bool owner_events,
			int event_count,
			XEventClass *event_list,
			int this_device_mode,
			int other_devices_mode,
			Time time);

       int XUngrabDevice( Display *display,
			  XDevice *device,
			  Time time);

       display
	      Specifies	the connection to the X	server.

       device
	      Specifies	the device to be grabbed or released.

       grab_window
	      Specifies	the id of a window to be associated with the
	      device.

       owner_events
	      Specifies	a Boolean value	that indicates whether
	      theevents	from the deviceare to be reported as usual or
	      reported with respect to the grab	windowif selected by
	      the event	list.

       event_count
	      Specifies	the number of elements in the event_list
	      array.

       event_list
	      Specifies	a pointer to a list of event classes that
	      indicates	which eventsthe	client wishes to receive.
	      These event classes must have beenobtained specifying
	      the device being grabbed.

       this_device_mode
	      Specifies	further	processing of events from this
	      device.You can pass GrabModeSyncor GrabModeAsync.

       other_devices_mode
	      Specifies	further	processing of events from other
	      devices.You can pass GrabModeSyncor GrabModeAsync.

       time
	      Specifies	the time.You can pass either a timestamp or
	      CurrentTime.

DESCRIPTION
	   The XGrabDevice request actively grabs control of the device
	   and generates DeviceFocusIn and DeviceFocusOut events. Further
	   device events are reported only to the grabbing
	   client.XGrabDevice overrides	any active device grab by this
	   client. event_list is a pointer to a	list of	event classes.
	   This	list indicates which events the	client wishes to receive
	   while the grab is active. If	owner_events is	False, all
	   generated device events are reported	with respect to
	   grab_window if selected. If owner_events is True and	if a
	   generated device event would	normally be reported to	this
	   client, it is reported normally; otherwise, the event is
	   reported with respect to the	grab_window, and is only reported
	   if specified	in the event_list.

	   If the this_device_mode argument is GrabModeAsync, device event
	   processing continues	as usual. If the device	is currently
	   frozen by this client, then processing of device events is
	   resumed. If the this_device_mode argument is	GrabModeSync, the
	   state of the	device (as seen	by client applications)	appears	to
	   freeze, and the X server generates no further device	events
	   until the grabbing client issues a releasing	XAllowDeviceEvents
	   call	or until the device grab is released. Actual device
	   changes are not lost	while the device is frozen; they are
	   simply queued in the	server for later processing.

	   If other_devices_mode is GrabModeAsync, processing of events
	   from	other devices is unaffected by activation of the grab. If
	   other_devices_mode is GrabModeSync, the state of all	devices
	   except the grabbed device (as seen by client	applications)
	   appears to freeze, and the X	server generates no further events
	   from	those devices until the	grabbing client	issues a releasing
	   XAllowDeviceEvents call or until the	device grab is released.
	   Actual events are not lost while the	devices	are frozen; they
	   are simply queued in	the server for later processing.

	   If the device is actively grabbed by	some other client,
	   XGrabDevice fails and returns AlreadyGrabbed. If grab_window	is
	   not viewable, it fails and returns GrabNotViewable. If the
	   device is frozen by an active grab of another client, it fails
	   and returns GrabFrozen. If the specified time is earlier than
	   the last-device-grab	time or	later than the current X server
	   time, it fails and returns GrabInvalidTime. Otherwise, the
	   last-device-grab time is set	to the specified time (
	   CurrentTime is replaced by the current X server time).

	   If a	grabbed	device is closed by a client while an active grab
	   by that client is in	effect,	the active grab	is released. If
	   the device is frozen	only by	an active grab of the requesting
	   client, it is thawed.

	   XGrabDevice can generate BadClass, BadDevice, BadValue, and
	   BadWindow errors.

	   The XUngrabDevice request releases the device and any queued
	   events if this client has it	actively grabbed from either
	   XGrabDevice or XGrabDeviceKey. If other devices are frozen by
	   the grab, XUngrabDevice thaws them.XUngrabDevice does not
	   release the device and any queued events if the specified time
	   is earlier than the last-device-grab	time or	is later than the
	   current X server time. It also generates DeviceFocusIn and
	   DeviceFocusOut events. The X	server automatically performs an
	   UngrabDevice	request	if the event window for	an active device
	   grab	becomes	not viewable.

	   XUngrabDevice can generate a	BadDevice error.

DIAGNOSTICS
	   BadDevice
		  An invalid device was	specified. The specified device
		  does not exist or has	not been opened	by this	client via
		  XOpenInputDevice. This error may also	occur if the
		  specified device is the X keyboard or	X pointer device.

	   BadValue
		  Some numeric value falls outside the range of	values
		  accepted by the request. Unless a specific range is
		  specified for	an argument, 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
	   XAllowDeviceEvents(3), XGrabDeviceButton(3),	XGrabDeviceKey(3)

				  03/09/2013			XGRABDEVICE(3)

NAME | SYNOPSIS | DESCRIPTION | DIAGNOSTICS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=XGrabDevice&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help