XAllowDeviceEvents

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
XAllowDeviceEvents(3X11)	 X FUNCTIONS	     XAllowDeviceEvents(3X11)



NAME
       XAllowDeviceEvents - release queued events

SYNTAX
       int   XAllowDeviceEvents(Display	  *display,   XDevice	*device,  int
	      event_mode, Time time);

ARGUMENTS
       display	   Specifies the connection to the X server.

       device	   Specifies the device from which events are to be  allowed.

       event_mode  Specifies  the  event mode.	You can pass AsyncThisDevice,
		   SyncThisDevice, ReplayThisDevice, AsyncOtherDevices,	 Syn-
		   cAll, or AsyncAll.

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

DESCRIPTION
       The XAllowDeviceEvents function releases some  queued  events  if  the
       client  has caused a device to freeze.  It has no effect if the speci-
       fied time is earlier than the last-grab time of the most recent active
       grab for the client and device, or if the specified time is later than
       the current X server time.

       The following describes the processing that occurs depending  on	 what
       constant you pass to the event_mode argument.

       AsyncThisDevice
		   If  the  specified  device  is frozen by the client, event
		   processing for that device continues	 as  usual.   If  the
		   device is frozen multiple times by the client on behalf of
		   multiple separate grabs, AsyncThisDevice  thaws  for	 all.
		   AsyncThisDevice  has	 no effect if the specified device is
		   not frozen by the client,  but  the	device	need  not  be
		   grabbed by the client.

       SyncThisDevice
		   If  the specified device is frozen and actively grabbed by
		   the client, event processing	 for  that  device  continues
		   normally until the next key or button event is reported to
		   the client.	At this	 time,	the  specified	device	again
		   appears  to freeze.	However, if the reported event causes
		   the grab to be released, the	 specified  device  does  not
		   freeze.   SyncThisDevice  has  no  effect if the specified
		   device is not frozen by the client or is  not  grabbed  by
		   the client.

       ReplayThisDevice
		   If  the specified device is actively grabbed by the client
		   and is frozen as the result of an event having  been	 sent
		   to the client (either from the activation of a GrabDevice-
		   Button or from  a  previous	AllowDeviceEvents  with	 mode
		   SyncThisDevice,  but	 not  from a GrabDevice), the grab is
		   released and that event is completely  reprocessed.	 This
		   time, however, the request ignores any passive grabs at or
		   above (toward the root) that the grab-window of  the	 grab
		   just released.  The request has no effect if the specified
		   device is not grabbed by the client or if it is not frozen
		   as the result of an event.

       AsyncOtherDevices
		   If  the  remaining devices are frozen by the client, event
		   processing for them continues  as  usual.   If  the	other
		   devices  are frozen multiple times by the client on behalf
		   of multiple	grabs,	AsyncOtherDevices  "thaws"  for	 all.
		   AsyncOtherDevices  has  no  effect  if the devices are not
		   frozen by the client.

       SyncAll	   If all devices are frozen by the client, event  processing
		   (for all devices) continues normally until the next button
		   or key event is reported  to	 the  client  for  a  grabbed
		   device,  at which time all devices again appear to freeze.
		   However, if the reported  event  causes  the	 grab  to  be
		   released,  then  the devices do not freeze.	If any device
		   is still grabbed, then a  subsequent	 event	for  it	 will
		   still  cause all devices to freeze.	SyncAll has no effect
		   unless all devices are  frozen  by  the  client.   If  any
		   device is frozen twice by the client on behalf of two sep-
		   arate grabs, SyncAll thaws for both.	 A subsequent  freeze
		   for SyncAll will only freeze each device once.

       AsyncAll	   If  all devices are frozen by the client, event processing
		   for all devices continues  normally.	  If  any  device  is
		   frozen  multiple times by the client on behalf of multiple
		   separate grabs, AsyncAll thaws for all.  AsyncAll  has  no
		   effect unless all devices are frozen by the client.

       AsyncThisDevice,	 SyncThisDevice,  and ReplayThisDevice have no effect
       on the processing of events from the remaining devices.	AsyncOtherDe-
       vices  has  no  effect  on the processing of events from the specified
       device.	When the event_mode is SyncAll or AsyncAll, the device param-
       eter is ignored.

       It  is  possible for several grabs of different devices by the same or
       different clients to be active simultaneously.  If a device is  frozen
       on  behalf  of  any  grab,  no  event  processing is performed for the
       device.	It is possible for a single device to be  frozen  because  of
       several grabs.  In this case, the freeze must be released on behalf of
       each grab before events can again be processed.

       XAllowDeviceEvents can generate a BadDevice or BadValue 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 speci-
		   fied device is the X keyboard or X pointer device.

       BadValue	   An invalid mode was specified on the request.

SEE ALSO
       XGrabDevice(3X11)
       Programming With Xlib



						     XAllowDeviceEvents(3X11)