mirror of
https://gitlab.freedesktop.org/xorg/proto/xorgproto.git
synced 2025-12-20 04:40:10 +01:00
include: Add support for XI 2.4 gesture input events
Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
This commit is contained in:
parent
eec0adee25
commit
d74ffaed91
2 changed files with 93 additions and 2 deletions
|
|
@ -30,7 +30,7 @@
|
|||
See commit libXi-1.4.2-21-ge8531dd */
|
||||
|
||||
#define XI_2_Major 2
|
||||
#define XI_2_Minor 3
|
||||
#define XI_2_Minor 4
|
||||
|
||||
/* Property event flags */
|
||||
#define XIPropertyDeleted 0
|
||||
|
|
@ -85,6 +85,8 @@
|
|||
#define XIGrabtypeEnter 2
|
||||
#define XIGrabtypeFocusIn 3
|
||||
#define XIGrabtypeTouchBegin 4
|
||||
#define XIGrabtypeGesturePinchBegin 5
|
||||
#define XIGrabtypeGestureSwipeBegin 6
|
||||
|
||||
/* Passive grab modifier */
|
||||
#define XIAnyModifier (1U << 31)
|
||||
|
|
@ -142,6 +144,7 @@
|
|||
#define XIValuatorClass 2
|
||||
#define XIScrollClass 3
|
||||
#define XITouchClass 8
|
||||
#define XIGestureClass 9
|
||||
|
||||
/* Scroll class types */
|
||||
#define XIScrollTypeVertical 1
|
||||
|
|
@ -164,6 +167,11 @@
|
|||
#define XIBarrierPointerReleased (1 << 0)
|
||||
#define XIBarrierDeviceIsGrabbed (1 << 1)
|
||||
|
||||
/* Gesture pinch event flags */
|
||||
#define XIGesturePinchEventCancelled (1 << 0)
|
||||
|
||||
/* Gesture swipe event flags */
|
||||
#define XIGestureSwipeEventCancelled (1 << 0)
|
||||
|
||||
/* Touch modes */
|
||||
#define XIDirectTouch 1
|
||||
|
|
@ -206,7 +214,13 @@
|
|||
#define XI_RawTouchEnd 24
|
||||
#define XI_BarrierHit 25 /* XI 2.3 */
|
||||
#define XI_BarrierLeave 26
|
||||
#define XI_LASTEVENT XI_BarrierLeave
|
||||
#define XI_GesturePinchBegin 27 /* XI 2.4 */
|
||||
#define XI_GesturePinchUpdate 28
|
||||
#define XI_GesturePinchEnd 29
|
||||
#define XI_GestureSwipeBegin 30
|
||||
#define XI_GestureSwipeUpdate 31
|
||||
#define XI_GestureSwipeEnd 32
|
||||
#define XI_LASTEVENT XI_GestureSwipeEnd
|
||||
/* NOTE: XI2LASTEVENT in xserver/include/inputstr.h must be the same value
|
||||
* as XI_LASTEVENT if the server is supposed to handle masks etc. for this
|
||||
* type of event. */
|
||||
|
|
|
|||
|
|
@ -218,6 +218,17 @@ typedef struct {
|
|||
uint8_t num_touches; /**< Maximum number of touches (0==unlimited) */
|
||||
} xXITouchInfo;
|
||||
|
||||
/**
|
||||
* Denotes touchpad gesture capability on a device.
|
||||
*/
|
||||
typedef struct {
|
||||
uint16_t type; /**< Always GestureClass */
|
||||
uint16_t length; /**< Length in 4 byte units */
|
||||
uint16_t sourceid; /**< source device for this class */
|
||||
uint8_t num_touches; /**< Maximum number of touches gesture supports (0==unlimited) */
|
||||
uint8_t pad0;
|
||||
} xXIGestureInfo;
|
||||
|
||||
/**
|
||||
* Used to select for events on a given window.
|
||||
* Struct is followed by (mask_len * CARD8), with each bit set representing
|
||||
|
|
@ -1083,6 +1094,72 @@ typedef xXIBarrierEvent xXIBarrierHitEvent;
|
|||
typedef xXIBarrierEvent xXIBarrierPointerReleasedEvent;
|
||||
typedef xXIBarrierEvent xXIBarrierLeaveEvent;
|
||||
|
||||
/**
|
||||
* Event for touchpad gesture pinch input events
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
uint8_t type; /**< Always GenericEvent */
|
||||
uint8_t extension; /**< XI extension offset */
|
||||
uint16_t sequenceNumber;
|
||||
uint32_t length; /**< Length in 4 byte uints */
|
||||
uint16_t evtype;
|
||||
uint16_t deviceid;
|
||||
Time time;
|
||||
uint32_t detail; /**< The number of touches in the gesture */
|
||||
Window root;
|
||||
Window event;
|
||||
Window child;
|
||||
/* └──────── 32 byte boundary ────────┘ */
|
||||
FP1616 root_x; /**< Always screen coords, 16.16 fixed point */
|
||||
FP1616 root_y;
|
||||
FP1616 event_x; /**< Always screen coords, 16.16 fixed point */
|
||||
FP1616 event_y;
|
||||
FP1616 delta_x;
|
||||
FP1616 delta_y;
|
||||
FP1616 delta_unaccel_x;
|
||||
FP1616 delta_unaccel_y;
|
||||
FP1616 scale;
|
||||
FP1616 delta_angle;
|
||||
uint16_t sourceid; /**< The source device */
|
||||
uint16_t pad0;
|
||||
xXIModifierInfo mods;
|
||||
xXIGroupInfo group;
|
||||
uint32_t flags; /**< ::XIGesturePinchEventCancelled */
|
||||
} xXIGesturePinchEvent;
|
||||
|
||||
/**
|
||||
* Event for touchpad gesture swipe input events
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
uint8_t type; /**< Always GenericEvent */
|
||||
uint8_t extension; /**< XI extension offset */
|
||||
uint16_t sequenceNumber;
|
||||
uint32_t length; /**< Length in 4 byte uints */
|
||||
uint16_t evtype;
|
||||
uint16_t deviceid;
|
||||
Time time;
|
||||
uint32_t detail; /**< The number of touches in the gesture */
|
||||
Window root;
|
||||
Window event;
|
||||
Window child;
|
||||
/* └──────── 32 byte boundary ────────┘ */
|
||||
FP1616 root_x; /**< Always screen coords, 16.16 fixed point */
|
||||
FP1616 root_y;
|
||||
FP1616 event_x; /**< Always screen coords, 16.16 fixed point */
|
||||
FP1616 event_y;
|
||||
FP1616 delta_x;
|
||||
FP1616 delta_y;
|
||||
FP1616 delta_unaccel_x;
|
||||
FP1616 delta_unaccel_y;
|
||||
uint16_t sourceid; /**< The source device */
|
||||
uint16_t pad0;
|
||||
xXIModifierInfo mods;
|
||||
xXIGroupInfo group;
|
||||
uint32_t flags; /**< ::XIGestureSwipeEventCancelled */
|
||||
} xXIGestureSwipeEvent;
|
||||
|
||||
#undef Window
|
||||
#undef Time
|
||||
#undef Atom
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue