Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XUngrabDeviceButton(3X11) — BSD/386 1.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

XAllowDeviceEvents(3X)

XGrabDevice(3X)

XGrabDeviceKey(3X)



XGrabDeviceButton(3X11)    X FUNCTIONS    XGrabDeviceButton(3X11)


NAME
       XGrabDeviceButton,   XUngrabDeviceButton   -   grab/ungrab
       extension input device buttons

SYNTAX

       XGrabDeviceButton(display, device, button, modifiers, modifierdevice, grabwindow,
       ownerevents, eventcount, eventlist, thisdevicemode, otherdevicesmode)
             Display *display;
             XDevice *device;
             unsigned int button;
             unsigned int modifiers;
             XDevice *modifierdevice;
             Window grabwindow;
             Bool ownerevents;
             unsigned int eventcount;
             XEventClass *eventlist;
             int thisdevicemode, otherdevicesmode;

       XUngrabDeviceButton(display, device, button, modifiers, modifierdevice, grabwindow)
             Display *display;
             XDevice *device;
             unsigned int button;
             unsigned int modifiers;
             XDevice *modifierdevice;
             Window grabwindow;


ARGUMENTS
       display     Specifies the connection to the X server.

       device      Specifies the device that is to be grabbed  or
                   released

       button      Specifies  the  device  button  that  is to be
                   grabbed or released or AnyButton.

       modifiers   Specifies the set of keymasks or  AnyModifier.
                   The  mask  is  the bitwise inclusive OR of the
                   valid keymask bits.  Valid  bits  are:  Shift-
                   mask,    LockMask,    ControlMask,   Mod1Mask,
                   Mod2Mask, Mod3Mask, Mod4Mask, Mod5Mask.

       modifierdevice
                   specifies the device whose modifiers are to be
                   used.   If  the  modifier_device  specified is
                   NULL, the X keyboard will be used as the modi-
                   fier_device.

       grabwindow Specifies the grab window.

       ownerevents
                   Specifies   a  Boolean  value  that  indicates
                   whether the device events are to  be  reported



X Version 11                Release 5                           1




XGrabDeviceButton(3X11)    X FUNCTIONS    XGrabDeviceButton(3X11)


                   as  usual or reported with respect to the grab
                   window if selected by the event list.

       eventcount Specifies the number of event classes  in  the
                   event list.

       eventlist  Specifies  which  events  are  reported to the
                   client.

       thisdevicemode
                   Specifies further processing  of  events  from
                   this  device.   You  can  pass GrabModeSync or
                   GrabModeAsync.

       otherdevicesmode
                   Specifies further processing  of  events  from
                   all  other devices.  You can pass GrabModeSync
                   or GrabModeAsync.

DESCRIPTION
       The XGrabDeviceButton request establishes a passive  grab.
       In  the  future,  the  device  is actively grabbed (as for
       XGrabDevice, the last-grab time is  set  to  the  time  at
       which  the  button  was  pressed  (as  transmitted  in the
       DeviceButtonPress event), and the DeviceButtonPress  event
       is reported if all of the following conditions are true:

       o    The  device  is not grabbed, and the specified button
            is logically pressed when the specified modifier keys
            are  logically  down on the specified modifier device
            and no other buttons or modifier keys  are  logically
            down.

       o    Either  the grab window is an ancestor of (or is) the
            focus window, OR the grab window is a  descendent  of
            the focus window and contains the device.

       o    A  passive  grab on the same button/modifier combina-
            tion does not exist on any ancestor of grab_window.

       The interpretation of the remaining arguments  is  as  for
       XGrabDevice.   The active grab is terminated automatically
       when the logical state  of  the  device  has  all  buttons
       released (independent of the logical state of the modifier
       keys).

       Note that the logical state of a device (as seen by client
       applications)  may  lag the physical state if device event
       processing is frozen.

       This request overrides all  previous  grabs  by  the  same
       client  on  the  same  button/modifier combinations on the
       same window.  A modifiers of AnyModifier is equivalent  to
       issuing   the  grab  request  for  all  possible  modifier



X Version 11                Release 5                           2




XGrabDeviceButton(3X11)    X FUNCTIONS    XGrabDeviceButton(3X11)


       combinations (including the combination of no  modifiers).
       It  is not required that all modifiers specified have cur-
       rently assigned KeyCodes.  A button of AnyButton is equiv-
       alent  to  issuing  the  request for all possible buttons.
       Otherwise, it is not required that  the  specified  button
       currently be assigned to a physical button.

       A modifier_device of NULL indicates that the X keyboard is
       to be used as the modifier_device.

       If some other client has already issued a  XGrabDeviceBut-
       ton  with the same button/modifier combination on the same
       window, a BadAccess error results.  When using AnyModifier
       or  AnyButton , the request fails completely, and a BadAc-
       cess error results (no grabs are established) if there  is
       a conflicting grab for any combination.  XGrabDeviceButton
       has no effect on an active grab.

       XGrabDeviceButton can generate BadClass,  BadDevice,  Bad-
       Match, BadValue, and BadWindow errors.

       The  XUngrabDeviceButton request releases the passive grab
       for a button/modifier combination on the specified  window
       if  it was grabbed by this client.  A modifier of AnyModi-
       fier is equivalent to issuing the ungrab request  for  all
       possible  modifier combinations, including the combination
       of no modifiers.  A button of AnyButton is  equivalent  to
       issuing  the request for all possible buttons.  XUngrabDe-
       viceButton has no effect on an active grab.

       A modifier_device of NULL indicates that  the  X  keyboard
       should be used as the modifier_device.

       XUngrabDeviceButton can generate BadDevice, BadMatch, Bad-
       Value and BadWindow errors.

DIAGNOSTICS
       BadDevice   An invalid device was specified.   The  speci-
                   fied  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.

       BadMatch    This  error  may occur if an XGrabDeviceButton
                   request was made specifying a device that  has
                   no  buttons,  or  specifying a modifier device
                   that has no keys.

       BadValue    Some numeric value falls outside the range  of
                   values accepted by the request.  Unless a spe-
                   cific 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.



X Version 11                Release 5                           3




XGrabDeviceButton(3X11)    X FUNCTIONS    XGrabDeviceButton(3X11)


       BadWindow   A  value for a Window argument does not name a
                   defined Window.

SEE ALSO
       XAllowDeviceEvents(3X),
       XGrabDevice(3X),
       XGrabDeviceKey(3X),
       Programming With Xlib

















































X Version 11                Release 5                           4


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026