From ed1788b8c3a78f6dc523487e46e202a5f667407c Mon Sep 17 00:00:00 2001 From: Povilas Kanapickas Date: Sat, 10 Oct 2020 02:53:41 +0300 Subject: Add support for XI 2.4 gesture events --- man/XIGrabButton.txt | 65 +++++++++++++++++++++++++++++++++++++++++---------- man/XIQueryDevice.txt | 19 ++++++++++++++- 2 files changed, 71 insertions(+), 13 deletions(-) (limited to 'man') diff --git a/man/XIGrabButton.txt b/man/XIGrabButton.txt index c5100fb..5d638f1 100644 --- a/man/XIGrabButton.txt +++ b/man/XIGrabButton.txt @@ -4,7 +4,7 @@ XIGRABBUTTON(libmansuffix) NAME ---- - XIGrabButton, XIUngrabButton, XIGrabKeycode, XIUngrabKeycode, XIGrabTouchBegin, XIUngrabTouchBegin - grab/ungrab buttons or keys + XIGrabButton, XIUngrabButton, XIGrabKeycode, XIUngrabKeycode, XIGrabTouchBegin, XIUngrabTouchBegin, XIGrabPinchGestureBegin, XIUngrabPinchGestureBegin, XIGrabSwipeGestureBegin, XIUngrabSwipeGestureBegin - grab/ungrab buttons or keys SYNOPSIS -------- @@ -62,6 +62,38 @@ SYNOPSIS int num_modifiers, XIGrabModifiers *modifiers); + int XIGrabPinchGestureBegin( Display* display, + int deviceid, + Window grab_window, + int grab_mode, + int paired_device_mode, + int owner_events, + XIEventMask *mask, + int num_modifiers, + XIGrabModifiers *modifiers_inout); + + int XIUngrabPinchGestureBegin( Display* display, + int deviceid, + Window grab_window, + int num_modifiers, + XIGrabModifiers *modifiers); + + int XIGrabSwipeGestureBegin( Display* display, + int deviceid, + Window grab_window, + int grab_mode, + int paired_device_mode, + int owner_events, + XIEventMask *mask, + int num_modifiers, + XIGrabModifiers *modifiers_inout); + + int XIUngrabSwipeGestureBegin( Display* display, + int deviceid, + Window grab_window, + int num_modifiers, + XIGrabModifiers *modifiers); + display Specifies the connection to the X server. @@ -114,8 +146,9 @@ SYNOPSIS DESCRIPTION ----------- - XIGrabButton, XIGrabKeycode and XIGrabTouchBegin establish a passive - grab. The modifier device for a button grab is the paired master device + XIGrabButton, XIGrabKeycode, XIGrabTouchBegin, XIGrabPinchGestureBegin, + XIGrabSwipeTouchBegin establish a passive grab. + The modifier device for a button grab is the paired master device if deviceid specifies a master pointer. Otherwise, the modifier device is the device specified with deviceid. In the future, the device is actively grabbed (as for XIGrabDevice, the @@ -123,7 +156,7 @@ DESCRIPTION was pressed and the XI_ButtonPress or XI_KeyPress event is reported if all of the following conditions are true: * The device is not grabbed, and the specified button or - keycode is logically pressed or a touch event occurs when the + keycode is logically pressed, a touch or a gesture event occurs when the specified modifier keys are logically down on the modifier device and no other buttons or modifier keys are logically down. * Either the grab window is an ancestor of (or is) the focus @@ -169,16 +202,20 @@ DESCRIPTION combination. XIGrabButton and XIGrabKeycode have no effect on an active grab. - On success, XIGrabButton, XIGrabKeycode and XIGrabTouchBegin return 0; + On success, XIGrabButton, XIGrabKeycode, XIGrabTouchBegin, + XIGrabPinchGestureBegin and XIGrabSwipeGestureBegin return 0; If one or more modifier combinations could not be grabbed, - XIGrabButton, XIGrabKeycode and XIGrabTouchBegin return the number of + XIGrabButton, XIGrabKeycode, XIGrabTouchBegin, XIGrabPinchGestureBegin + and XIGrabSwipeGestureBegin return the number of failed combinations and modifiers_inout contains the failed combinations and their respective error codes. - XIGrabButton, XIGrabKeycode and XIGrabTouchBegin can generate BadClass, + XIGrabButton, XIGrabKeycode, XIGrabTouchBegin, XIGrabPinchGestureBegin + and XIGrabSwipeGestureBegin can generate BadClass, BadDevice, BadMatch, BadValue, and BadWindow errors. - XIUngrabButton, XIUngrabKeycode and XIUngrabTouchBegin release the + XIUngrabButton, XIUngrabKeycode, XIUngrabTouchBegin, XIUngrabPinchGestureBegin + and XIUngrabSwipeGestureBegin release the passive grab for a button/modifier, keycode/modifier or touch/modifier combination on the specified window if it was grabbed by this client. A modifier of XIAnyModifier is equivalent to issuing the ungrab request @@ -188,12 +225,14 @@ DESCRIPTION XIUngrabButton and XIUngrabKeycode have no effect on an active grab. - XIUngrabButton, XIUngrabKeycode and XIUngrabTouchBegin can generate + XIUngrabButton, XIUngrabKeycode, XIUngrabTouchBegin, + XIUngrabPinchGestureBegin and XIUngrabSwipeGestureBegin can generate BadDevice, BadMatch, BadValue and BadWindow errors. RETURN VALUE ------------ - XIGrabButton, XIGrabKeycode and XIGrabTouchBegin return the number of + XIGrabButton, XIGrabKeycode, XIGrabTouchBegin and + XIGrabPinchGestureBegin and XIGrabSwipeGestureBegin return the number of modifier combination that could not establish a passive grab. The modifiers are returned in modifiers_inout, along with the respective error for this modifier combination. If XIGrabButton, XIGrabKeycode @@ -209,8 +248,10 @@ DIAGNOSTICS BadMatch This error may occur if XIGrabButton specified a device that has no buttons, or XIGrabKeycode specified a device - that has no keys, or XIGrabTouchBegin specified a device - that is not touch-capable. + that has no keys, + or XIGrabTouchBegin specified a device that is not touch-capable, + or XIGrabPinchGestureBegin specified a device that is not gesture-capable, + or XIGrabSwipeGestureBegin specified a device that is not gesture-capable. BadValue Some numeric value falls outside the range of values diff --git a/man/XIQueryDevice.txt b/man/XIQueryDevice.txt index 232d735..bc9e36f 100644 --- a/man/XIQueryDevice.txt +++ b/man/XIQueryDevice.txt @@ -101,7 +101,7 @@ DESCRIPTION The type field specifies the type of the input class. Currently, the following types are defined: XIKeyClass, XIButtonClass, XIValuatorClass, XIScrollClass, - XITouchClass + XITouchClass, XIGestureClass. In the future, additional types may be added. Clients are required to ignore unknown input classes. @@ -259,6 +259,23 @@ DESCRIPTION valuators must be defined with the respective XIValuatorClass classes. A valuator may send both pointer and touch-events. + typedef struct + { + int type; + int sourceid; + int num_touches; + } XIGestureClassInfo; + + A device may have zero or one XIGestureClassInfo, denoting + touchpad gesture capability on the device. A device with a XIGestureClassInfo + may send GestureSwipeBegin, GestureSwipeUpdate, GestureSwipeEnd, + GesturePinchBegin, GesturePinchUpdate, GesturePinchEnd. + + The num_touches field defines the maximum number of simultaneous touches + the device supports. A num_touches of 0 means the maximum number of + simultaneous touches is undefined or unspecified. This field should be + used as a guide only, devices will lie about their capabilities. + XIQueryDevice can generate a BadDevice error. XIFreeDeviceInfo frees the information returned by -- cgit v1.2.3