DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

XAllowDeviceEvents(3)





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 pro-
                   cessing  for that device continues as usual.  If the device
                   is frozen multiple times by the client on behalf of  multi-
                   ple  separate grabs, AsyncThisDevice thaws for all.  Async-
                   ThisDevice 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 nor-
                   mally 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 GrabDeviceBut-
                   ton or from a previous AllowDeviceEvents  with  mode  Sync-
                   ThisDevice,  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 separate 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.  AsyncOtherDevices
       has  no  effect  on the processing of events from the specified device.
       When the event_mode is SyncAll or AsyncAll,  the  device  parameter  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 XOpen-
                   InputDevice.  This error may also occur  if  the  specified
                   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

X Version 11                      libXi 1.0.2         XAllowDeviceEvents(3X11)

Man(1) output converted with man2html