This manual page is for Mac OS X version 10.6.3

If you are running a different version of Mac OS X, view the documentation locally:

  • In Terminal, using the man(1) command

Reading manual pages

Manual pages are intended as a quick reference for people who already understand a technology.

  • For more information about the manual page format, see the manual page for manpages(5).

  • For more information about this technology, look for other documentation in the Apple Reference Library.

  • For general information about writing shell scripts, read Shell Scripting Primer.



XGrabDeviceButton(3)                             X FUNCTIONS                            XGrabDeviceButton(3)



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

SYNTAX


       int XGrabDeviceButton(Display *display, XDevice *device,
              unsigned int button, unsigned int modifiers, XDevice
              *modifier_device, Window grab_window, Bool
              owner_events, unsigned int event_count, XEventClass
              *event_list, int this_device_mode, int
              other_devices_mode);

       int XUngrabDeviceButton(Display *display, XDevice *device,
              unsigned int button, unsigned int modifiers, XDevice
              *modifier_device, Window grab_window);


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:  Shiftmask,  LockMask,  ControlMask,  Mod1Mask,
                   Mod2Mask, Mod3Mask, Mod4Mask, Mod5Mask.

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

       grab_window Specifies the grab window.

       owner_events
                   Specifies a Boolean value that indicates whether the device events are to be reported  as
                   usual or reported with respect to the grab window if selected by the event list.

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

       event_list  Specifies which events are reported to the client.

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

       other_devices_mode
                   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:

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

           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.

           A  passive  grab  on  the  same  button/modifier  combination  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 logi-cal logical
       cal 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 combinations (including the combination of no modifiers).  It is not required that
       all modifiers specified have currently assigned KeyCodes.  A button of  AnyButton  is  equivalent  to
       issuing  the request for all possible buttons.  Otherwise, it is not required that the specified but-ton button
       ton 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 XGrabDeviceButton 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 BadAccess 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, BadMatch, 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 AnyModifier is equivalent to  issu-ing issuing
       ing  the ungrab request for all possible modifier combinations, including the combination of no modi-fiers. modifiers.
       fiers.  A button of AnyButton is equivalent to issuing the request for all  possible  buttons.   XUn-grabDeviceButton XUngrabDeviceButton
       grabDeviceButton 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, BadValue and BadWindow errors.

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.

       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
                   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),
       XGrabDevice(3),
       XGrabDeviceKey(3),
       Programming With Xlib



X Version 11                                     libXi 1.2.1                            XGrabDeviceButton(3)

Reporting Problems

The way to report a problem with this manual page depends on the type of problem:

Content errors
Report errors in the content of this documentation with the feedback links below.
Bug reports
Report bugs in the functionality of the described tool or API through Bug Reporter.
Formatting problems
Report formatting mistakes in the online version of these pages with the feedback links below.

Did this document help you? Yes It's good, but... Not helpful...