grab_button/9
     grab_button(+ButtonGrab, +ModifiersMask,
             +GrabWindow, +OwnerEvents, +EventsMask,
             +PointerMode, +KeyboardMode, +WindowConfine,
             +Cursor)
     

This predicate establishes a passive grab on the pointer, activated when a specified button and set of modifiers are pressed while the pointer is in the grab window.

ButtonGrab is the pointer button to be grabbed, possible values are:


1 to 5
The button number.
any_button

ModifiersMask is one of:


An integer
A bitmask giving the state of the modifier masks. The predicate modifiers_mask/2 is useful to translate between modifier specifications and bitmasks.
any_modifier

GrabWindow is the ProXL window to which events will be reported while the grab is in effect.

OwnerEvents is one of:


true
If pointer events should be reported normally.
false
If pointer events should be reported only to the grab window.

EventsMask is an integer bitmask specifying the events that are selected and should be reported to the client. The valid event mask names are:

The predicate event_list_mask/2 is useful to translate between event mask names and integer bitmasks.

PointerMode controls further processing of pointer events:


async
If pointer event processing continues normally.
sync
If the state of the pointer, as seen by applications, appears to freeze. No further pointer events are generated until the grabbing client calls allow_events/[1,2,3] or the pointer grab is released.

KeyboardMode controls further processing of keyboard events:


async
If keyboard event processing continues normally.
sync
If the state of the keyboard, as seen by applications appears to freeze. No further keyboard events are generated until the grabbing client calls allow_events/[1,2,3] or the keyboard grab is released.

WindowConfine is the ProXL window to which the pointer will be confined during the grab, or the atom none.

Cursor is the ProXL cursor to be displayed during the grab, or the atom none.