forked from AuroraMiddleware/gtk
gdk: Add touch event types and mask
This commit introduces GDK_TOUCH_BEGIN/UPDATE/END/CANCEL and a separate GdkEventTouch struct that they use. This is closer to the touch event API of other platforms and matches the xi2 events closely, too.
This commit is contained in:
parent
a490d2ebda
commit
7f35708cee
@ -829,6 +829,7 @@ GdkEvent
|
|||||||
GdkEventAny
|
GdkEventAny
|
||||||
GdkEventKey
|
GdkEventKey
|
||||||
GdkEventButton
|
GdkEventButton
|
||||||
|
GdkEventTouch
|
||||||
GdkEventScroll
|
GdkEventScroll
|
||||||
GdkEventMotion
|
GdkEventMotion
|
||||||
GdkEventExpose
|
GdkEventExpose
|
||||||
|
@ -457,6 +457,15 @@ gdk_event_new (GdkEventType type)
|
|||||||
new_event->button.x_root = 0.;
|
new_event->button.x_root = 0.;
|
||||||
new_event->button.y_root = 0.;
|
new_event->button.y_root = 0.;
|
||||||
break;
|
break;
|
||||||
|
case GDK_TOUCH_BEGIN:
|
||||||
|
case GDK_TOUCH_UPDATE:
|
||||||
|
case GDK_TOUCH_END:
|
||||||
|
case GDK_TOUCH_CANCEL:
|
||||||
|
new_event->touch.x = 0.;
|
||||||
|
new_event->touch.y = 0.;
|
||||||
|
new_event->touch.x_root = 0.;
|
||||||
|
new_event->touch.y_root = 0.;
|
||||||
|
break;
|
||||||
case GDK_SCROLL:
|
case GDK_SCROLL:
|
||||||
new_event->scroll.x = 0.;
|
new_event->scroll.x = 0.;
|
||||||
new_event->scroll.y = 0.;
|
new_event->scroll.y = 0.;
|
||||||
@ -585,6 +594,15 @@ gdk_event_copy (const GdkEvent *event)
|
|||||||
sizeof (gdouble) * gdk_device_get_n_axes (event->button.device));
|
sizeof (gdouble) * gdk_device_get_n_axes (event->button.device));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case GDK_TOUCH_BEGIN:
|
||||||
|
case GDK_TOUCH_UPDATE:
|
||||||
|
case GDK_TOUCH_END:
|
||||||
|
case GDK_TOUCH_CANCEL:
|
||||||
|
if (event->touch.axes)
|
||||||
|
new_event->touch.axes = g_memdup (event->touch.axes,
|
||||||
|
sizeof (gdouble) * gdk_device_get_n_axes (event->touch.device));
|
||||||
|
break;
|
||||||
|
|
||||||
case GDK_MOTION_NOTIFY:
|
case GDK_MOTION_NOTIFY:
|
||||||
if (event->motion.axes)
|
if (event->motion.axes)
|
||||||
new_event->motion.axes = g_memdup (event->motion.axes,
|
new_event->motion.axes = g_memdup (event->motion.axes,
|
||||||
@ -663,7 +681,14 @@ gdk_event_free (GdkEvent *event)
|
|||||||
case GDK_BUTTON_RELEASE:
|
case GDK_BUTTON_RELEASE:
|
||||||
g_free (event->button.axes);
|
g_free (event->button.axes);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case GDK_TOUCH_BEGIN:
|
||||||
|
case GDK_TOUCH_UPDATE:
|
||||||
|
case GDK_TOUCH_END:
|
||||||
|
case GDK_TOUCH_CANCEL:
|
||||||
|
g_free (event->touch.axes);
|
||||||
|
break;
|
||||||
|
|
||||||
case GDK_EXPOSE:
|
case GDK_EXPOSE:
|
||||||
case GDK_DAMAGE:
|
case GDK_DAMAGE:
|
||||||
if (event->expose.region)
|
if (event->expose.region)
|
||||||
@ -724,6 +749,11 @@ gdk_event_get_time (const GdkEvent *event)
|
|||||||
case GDK_3BUTTON_PRESS:
|
case GDK_3BUTTON_PRESS:
|
||||||
case GDK_BUTTON_RELEASE:
|
case GDK_BUTTON_RELEASE:
|
||||||
return event->button.time;
|
return event->button.time;
|
||||||
|
case GDK_TOUCH_BEGIN:
|
||||||
|
case GDK_TOUCH_UPDATE:
|
||||||
|
case GDK_TOUCH_END:
|
||||||
|
case GDK_TOUCH_CANCEL:
|
||||||
|
return event->touch.time;
|
||||||
case GDK_SCROLL:
|
case GDK_SCROLL:
|
||||||
return event->scroll.time;
|
return event->scroll.time;
|
||||||
case GDK_KEY_PRESS:
|
case GDK_KEY_PRESS:
|
||||||
@ -799,7 +829,13 @@ gdk_event_get_state (const GdkEvent *event,
|
|||||||
case GDK_2BUTTON_PRESS:
|
case GDK_2BUTTON_PRESS:
|
||||||
case GDK_3BUTTON_PRESS:
|
case GDK_3BUTTON_PRESS:
|
||||||
case GDK_BUTTON_RELEASE:
|
case GDK_BUTTON_RELEASE:
|
||||||
*state = event->button.state;
|
*state = event->button.state;
|
||||||
|
return TRUE;
|
||||||
|
case GDK_TOUCH_BEGIN:
|
||||||
|
case GDK_TOUCH_UPDATE:
|
||||||
|
case GDK_TOUCH_END:
|
||||||
|
case GDK_TOUCH_CANCEL:
|
||||||
|
*state = event->touch.state;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
case GDK_SCROLL:
|
case GDK_SCROLL:
|
||||||
*state = event->scroll.state;
|
*state = event->scroll.state;
|
||||||
@ -890,6 +926,13 @@ gdk_event_get_coords (const GdkEvent *event,
|
|||||||
x = event->button.x;
|
x = event->button.x;
|
||||||
y = event->button.y;
|
y = event->button.y;
|
||||||
break;
|
break;
|
||||||
|
case GDK_TOUCH_BEGIN:
|
||||||
|
case GDK_TOUCH_UPDATE:
|
||||||
|
case GDK_TOUCH_END:
|
||||||
|
case GDK_TOUCH_CANCEL:
|
||||||
|
x = event->touch.x;
|
||||||
|
y = event->touch.y;
|
||||||
|
break;
|
||||||
case GDK_MOTION_NOTIFY:
|
case GDK_MOTION_NOTIFY:
|
||||||
x = event->motion.x;
|
x = event->motion.x;
|
||||||
y = event->motion.y;
|
y = event->motion.y;
|
||||||
@ -944,6 +987,13 @@ gdk_event_get_root_coords (const GdkEvent *event,
|
|||||||
x = event->button.x_root;
|
x = event->button.x_root;
|
||||||
y = event->button.y_root;
|
y = event->button.y_root;
|
||||||
break;
|
break;
|
||||||
|
case GDK_TOUCH_BEGIN:
|
||||||
|
case GDK_TOUCH_UPDATE:
|
||||||
|
case GDK_TOUCH_END:
|
||||||
|
case GDK_TOUCH_CANCEL:
|
||||||
|
x = event->touch.x_root;
|
||||||
|
y = event->touch.y_root;
|
||||||
|
break;
|
||||||
case GDK_ENTER_NOTIFY:
|
case GDK_ENTER_NOTIFY:
|
||||||
case GDK_LEAVE_NOTIFY:
|
case GDK_LEAVE_NOTIFY:
|
||||||
x = event->crossing.x_root;
|
x = event->crossing.x_root;
|
||||||
@ -1184,7 +1234,7 @@ gdk_event_get_axis (const GdkEvent *event,
|
|||||||
|
|
||||||
switch (event->type)
|
switch (event->type)
|
||||||
{
|
{
|
||||||
case GDK_MOTION_NOTIFY:
|
case GDK_MOTION_NOTIFY:
|
||||||
x = event->motion.x;
|
x = event->motion.x;
|
||||||
y = event->motion.y;
|
y = event->motion.y;
|
||||||
break;
|
break;
|
||||||
@ -1197,6 +1247,13 @@ gdk_event_get_axis (const GdkEvent *event,
|
|||||||
x = event->button.x;
|
x = event->button.x;
|
||||||
y = event->button.y;
|
y = event->button.y;
|
||||||
break;
|
break;
|
||||||
|
case GDK_TOUCH_BEGIN:
|
||||||
|
case GDK_TOUCH_UPDATE:
|
||||||
|
case GDK_TOUCH_END:
|
||||||
|
case GDK_TOUCH_CANCEL:
|
||||||
|
x = event->touch.x;
|
||||||
|
y = event->touch.y;
|
||||||
|
break;
|
||||||
case GDK_ENTER_NOTIFY:
|
case GDK_ENTER_NOTIFY:
|
||||||
case GDK_LEAVE_NOTIFY:
|
case GDK_LEAVE_NOTIFY:
|
||||||
x = event->crossing.x;
|
x = event->crossing.x;
|
||||||
@ -1220,6 +1277,14 @@ gdk_event_get_axis (const GdkEvent *event,
|
|||||||
device = event->button.device;
|
device = event->button.device;
|
||||||
axes = event->button.axes;
|
axes = event->button.axes;
|
||||||
}
|
}
|
||||||
|
else if (event->type == GDK_TOUCH_BEGIN ||
|
||||||
|
event->type == GDK_TOUCH_UPDATE ||
|
||||||
|
event->type == GDK_TOUCH_END ||
|
||||||
|
event->type == GDK_TOUCH_CANCEL)
|
||||||
|
{
|
||||||
|
device = event->touch.device;
|
||||||
|
axes = event->touch.axes;
|
||||||
|
}
|
||||||
else if (event->type == GDK_MOTION_NOTIFY)
|
else if (event->type == GDK_MOTION_NOTIFY)
|
||||||
{
|
{
|
||||||
device = event->motion.device;
|
device = event->motion.device;
|
||||||
@ -1265,6 +1330,12 @@ gdk_event_set_device (GdkEvent *event,
|
|||||||
case GDK_BUTTON_RELEASE:
|
case GDK_BUTTON_RELEASE:
|
||||||
event->button.device = device;
|
event->button.device = device;
|
||||||
break;
|
break;
|
||||||
|
case GDK_TOUCH_BEGIN:
|
||||||
|
case GDK_TOUCH_UPDATE:
|
||||||
|
case GDK_TOUCH_END:
|
||||||
|
case GDK_TOUCH_CANCEL:
|
||||||
|
event->touch.device = device;
|
||||||
|
break;
|
||||||
case GDK_SCROLL:
|
case GDK_SCROLL:
|
||||||
event->scroll.device = device;
|
event->scroll.device = device;
|
||||||
break;
|
break;
|
||||||
@ -1310,6 +1381,11 @@ gdk_event_get_device (const GdkEvent *event)
|
|||||||
case GDK_3BUTTON_PRESS:
|
case GDK_3BUTTON_PRESS:
|
||||||
case GDK_BUTTON_RELEASE:
|
case GDK_BUTTON_RELEASE:
|
||||||
return event->button.device;
|
return event->button.device;
|
||||||
|
case GDK_TOUCH_BEGIN:
|
||||||
|
case GDK_TOUCH_UPDATE:
|
||||||
|
case GDK_TOUCH_END:
|
||||||
|
case GDK_TOUCH_CANCEL:
|
||||||
|
return event->touch.device;
|
||||||
case GDK_SCROLL:
|
case GDK_SCROLL:
|
||||||
return event->scroll.device;
|
return event->scroll.device;
|
||||||
case GDK_PROXIMITY_IN:
|
case GDK_PROXIMITY_IN:
|
||||||
@ -1327,6 +1403,10 @@ gdk_event_get_device (const GdkEvent *event)
|
|||||||
case GDK_2BUTTON_PRESS:
|
case GDK_2BUTTON_PRESS:
|
||||||
case GDK_3BUTTON_PRESS:
|
case GDK_3BUTTON_PRESS:
|
||||||
case GDK_BUTTON_RELEASE:
|
case GDK_BUTTON_RELEASE:
|
||||||
|
case GDK_TOUCH_BEGIN:
|
||||||
|
case GDK_TOUCH_UPDATE:
|
||||||
|
case GDK_TOUCH_END:
|
||||||
|
case GDK_TOUCH_CANCEL:
|
||||||
case GDK_ENTER_NOTIFY:
|
case GDK_ENTER_NOTIFY:
|
||||||
case GDK_LEAVE_NOTIFY:
|
case GDK_LEAVE_NOTIFY:
|
||||||
case GDK_FOCUS_CHANGE:
|
case GDK_FOCUS_CHANGE:
|
||||||
@ -1726,6 +1806,12 @@ gdk_event_get_event_sequence (const GdkEvent *event)
|
|||||||
if (!event)
|
if (!event)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
if (event->type == GDK_TOUCH_BEGIN ||
|
||||||
|
event->type == GDK_TOUCH_UPDATE ||
|
||||||
|
event->type == GDK_TOUCH_END ||
|
||||||
|
event->type == GDK_TOUCH_CANCEL)
|
||||||
|
return event->touch.sequence;
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,6 +129,7 @@ typedef struct _GdkEventExpose GdkEventExpose;
|
|||||||
typedef struct _GdkEventVisibility GdkEventVisibility;
|
typedef struct _GdkEventVisibility GdkEventVisibility;
|
||||||
typedef struct _GdkEventMotion GdkEventMotion;
|
typedef struct _GdkEventMotion GdkEventMotion;
|
||||||
typedef struct _GdkEventButton GdkEventButton;
|
typedef struct _GdkEventButton GdkEventButton;
|
||||||
|
typedef struct _GdkEventTouch GdkEventTouch;
|
||||||
typedef struct _GdkEventScroll GdkEventScroll;
|
typedef struct _GdkEventScroll GdkEventScroll;
|
||||||
typedef struct _GdkEventKey GdkEventKey;
|
typedef struct _GdkEventKey GdkEventKey;
|
||||||
typedef struct _GdkEventFocus GdkEventFocus;
|
typedef struct _GdkEventFocus GdkEventFocus;
|
||||||
@ -264,6 +265,14 @@ typedef GdkFilterReturn (*GdkFilterFunc) (GdkXEvent *xevent,
|
|||||||
* was added in 2.8.
|
* was added in 2.8.
|
||||||
* @GDK_DAMAGE: the content of the window has been changed. This event type
|
* @GDK_DAMAGE: the content of the window has been changed. This event type
|
||||||
* was added in 2.14.
|
* was added in 2.14.
|
||||||
|
* @GDK_TOUCH_BEGIN: A new touch event sequence has just started. This event
|
||||||
|
* type was added in 3.4.
|
||||||
|
* @GDK_TOUCH_UPDATE: A touch event sequence has been updated. This event type
|
||||||
|
* was added in 3.4.
|
||||||
|
* @GDK_TOUCH_END: A touch event sequence has finished. This event type
|
||||||
|
* was added in 3.4.
|
||||||
|
* @GDK_TOUCH_CANCEL: A touch event sequence has been canceled. This event type
|
||||||
|
* was added in 3.4.
|
||||||
* @GDK_EVENT_LAST: marks the end of the GdkEventType enumeration. Added in 2.18
|
* @GDK_EVENT_LAST: marks the end of the GdkEventType enumeration. Added in 2.18
|
||||||
*
|
*
|
||||||
* Specifies the type of the event.
|
* Specifies the type of the event.
|
||||||
@ -311,6 +320,10 @@ typedef enum
|
|||||||
GDK_OWNER_CHANGE = 34,
|
GDK_OWNER_CHANGE = 34,
|
||||||
GDK_GRAB_BROKEN = 35,
|
GDK_GRAB_BROKEN = 35,
|
||||||
GDK_DAMAGE = 36,
|
GDK_DAMAGE = 36,
|
||||||
|
GDK_TOUCH_BEGIN = 37,
|
||||||
|
GDK_TOUCH_UPDATE = 38,
|
||||||
|
GDK_TOUCH_END = 39,
|
||||||
|
GDK_TOUCH_CANCEL = 40,
|
||||||
GDK_EVENT_LAST /* helper variable for decls */
|
GDK_EVENT_LAST /* helper variable for decls */
|
||||||
} GdkEventType;
|
} GdkEventType;
|
||||||
|
|
||||||
@ -598,7 +611,7 @@ struct _GdkEventMotion
|
|||||||
*
|
*
|
||||||
* Used for button press and button release events. The
|
* Used for button press and button release events. The
|
||||||
* @type field will be one of %GDK_BUTTON_PRESS,
|
* @type field will be one of %GDK_BUTTON_PRESS,
|
||||||
* %GDK_2BUTTON_PRESS, %GDK_3BUTTON_PRESS, and %GDK_BUTTON_RELEASE.
|
* %GDK_2BUTTON_PRESS, %GDK_3BUTTON_PRESS or %GDK_BUTTON_RELEASE,
|
||||||
*
|
*
|
||||||
* Double and triple-clicks result in a sequence of events being received.
|
* Double and triple-clicks result in a sequence of events being received.
|
||||||
* For double-clicks the order of events will be:
|
* For double-clicks the order of events will be:
|
||||||
@ -646,6 +659,57 @@ struct _GdkEventButton
|
|||||||
gdouble x_root, y_root;
|
gdouble x_root, y_root;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GdkEventTouch:
|
||||||
|
* @type: the type of the event (%GDK_TOUCH_BEGIN, %GDK_TOUCH_UPDATE,
|
||||||
|
* %GDK_TOUCH_END, %GDK_TOUCH_CANCEL)
|
||||||
|
* @window: the window which received the event
|
||||||
|
* @send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||||
|
* <function>XSendEvent</function>)
|
||||||
|
* @time: the time of the event in milliseconds.
|
||||||
|
* @x: the x coordinate of the pointer relative to the window
|
||||||
|
* @y: the y coordinate of the pointer relative to the window
|
||||||
|
* @axes: @x, @y translated to the axes of @device, or %NULL if @device is
|
||||||
|
* the mouse
|
||||||
|
* @state: (type GdkModifierType): a bit-mask representing the state of
|
||||||
|
* the modifier keys (e.g. Control, Shift and Alt) and the pointer
|
||||||
|
* buttons. See #GdkModifierType
|
||||||
|
* @sequence: the event sequence that the event belongs to
|
||||||
|
* @emulating_pointer: whether the event should be used for emulating
|
||||||
|
* pointer event
|
||||||
|
* @device: the device where the event originated
|
||||||
|
* @x_root: the x coordinate of the pointer relative to the root of the
|
||||||
|
* screen
|
||||||
|
* @y_root: the y coordinate of the pointer relative to the root of the
|
||||||
|
* screen
|
||||||
|
*
|
||||||
|
* Used for touch events.
|
||||||
|
* @type field will be one of %GDK_TOUCH_BEGIN, %GDK_TOUCH_UPDATE,
|
||||||
|
* %GDK_TOUCH_END or %GDK_TOUCH_CANCEL.
|
||||||
|
*
|
||||||
|
* Touch events are grouped into sequences by means of the @sequence
|
||||||
|
* field, which can also be obtained with gdk_event_get_event_sequence().
|
||||||
|
* Each sequence begins with a %GDK_TOUCH_BEGIN event, followed by
|
||||||
|
* any number of %GDK_TOUCH_UPDATE events, and ends with a %GDK_TOUCH_END
|
||||||
|
* (or %GDK_TOUCH_CANCEL) event. With multitouch devices, there may be
|
||||||
|
* several active sequences at the same time.
|
||||||
|
*/
|
||||||
|
struct _GdkEventTouch
|
||||||
|
{
|
||||||
|
GdkEventType type;
|
||||||
|
GdkWindow *window;
|
||||||
|
gint8 send_event;
|
||||||
|
guint32 time;
|
||||||
|
gdouble x;
|
||||||
|
gdouble y;
|
||||||
|
gdouble *axes;
|
||||||
|
guint state;
|
||||||
|
GdkEventSequence *sequence;
|
||||||
|
gboolean emulating_pointer;
|
||||||
|
GdkDevice *device;
|
||||||
|
gdouble x_root, y_root;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GdkEventScroll:
|
* GdkEventScroll:
|
||||||
* @type: the type of the event (%GDK_SCROLL).
|
* @type: the type of the event (%GDK_SCROLL).
|
||||||
@ -1074,6 +1138,7 @@ union _GdkEvent
|
|||||||
GdkEventVisibility visibility;
|
GdkEventVisibility visibility;
|
||||||
GdkEventMotion motion;
|
GdkEventMotion motion;
|
||||||
GdkEventButton button;
|
GdkEventButton button;
|
||||||
|
GdkEventTouch touch;
|
||||||
GdkEventScroll scroll;
|
GdkEventScroll scroll;
|
||||||
GdkEventKey key;
|
GdkEventKey key;
|
||||||
GdkEventCrossing crossing;
|
GdkEventCrossing crossing;
|
||||||
|
@ -348,6 +348,7 @@ typedef enum
|
|||||||
* @GDK_SUBSTRUCTURE_MASK: receive events about window configuration changes of
|
* @GDK_SUBSTRUCTURE_MASK: receive events about window configuration changes of
|
||||||
* child windows
|
* child windows
|
||||||
* @GDK_SCROLL_MASK: receive scroll events
|
* @GDK_SCROLL_MASK: receive scroll events
|
||||||
|
* @GDK_TOUCH_MASK: receive touch events
|
||||||
* @GDK_ALL_EVENTS_MASK: the combination of all the above event masks.
|
* @GDK_ALL_EVENTS_MASK: the combination of all the above event masks.
|
||||||
*
|
*
|
||||||
* A set of bit-flags to indicate which events a window is to receive.
|
* A set of bit-flags to indicate which events a window is to receive.
|
||||||
@ -363,6 +364,13 @@ typedef enum
|
|||||||
* some of which are marked as a hint (the is_hint member is %TRUE).
|
* some of which are marked as a hint (the is_hint member is %TRUE).
|
||||||
* To receive more motion events after a motion hint event, the application
|
* To receive more motion events after a motion hint event, the application
|
||||||
* needs to asks for more, by calling gdk_event_request_motions().
|
* needs to asks for more, by calling gdk_event_request_motions().
|
||||||
|
*
|
||||||
|
* If %GDK_TOUCH_MASK is enabled, the window will receive touch events
|
||||||
|
* from touch-enabled devices. Those will come as sequences of #GdkEventTouch
|
||||||
|
* with type %GDK_TOUCH_UPDATE, enclosed by two events with
|
||||||
|
* type %GDK_TOUCH_BEGIN and %GDK_TOUCH_END (or %GDK_TOUCH_CANCEL).
|
||||||
|
* gdk_event_get_event_sequence() returns the event sequence for these
|
||||||
|
* events, so different sequences may be distinguished.
|
||||||
*/
|
*/
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
@ -387,7 +395,8 @@ typedef enum
|
|||||||
GDK_PROXIMITY_OUT_MASK = 1 << 19,
|
GDK_PROXIMITY_OUT_MASK = 1 << 19,
|
||||||
GDK_SUBSTRUCTURE_MASK = 1 << 20,
|
GDK_SUBSTRUCTURE_MASK = 1 << 20,
|
||||||
GDK_SCROLL_MASK = 1 << 21,
|
GDK_SCROLL_MASK = 1 << 21,
|
||||||
GDK_ALL_EVENTS_MASK = 0x3FFFFE
|
GDK_TOUCH_MASK = 1 << 22,
|
||||||
|
GDK_ALL_EVENTS_MASK = 0x7FFFFE
|
||||||
} GdkEventMask;
|
} GdkEventMask;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -8121,6 +8121,10 @@ static const guint type_masks[] = {
|
|||||||
0, /* GDK_OWNER_CHANGE = 34 */
|
0, /* GDK_OWNER_CHANGE = 34 */
|
||||||
0, /* GDK_GRAB_BROKEN = 35 */
|
0, /* GDK_GRAB_BROKEN = 35 */
|
||||||
0, /* GDK_DAMAGE = 36 */
|
0, /* GDK_DAMAGE = 36 */
|
||||||
|
GDK_TOUCH_MASK, /* GDK_TOUCH_BEGIN = 37 */
|
||||||
|
GDK_TOUCH_MASK, /* GDK_TOUCH_UPDATE = 38 */
|
||||||
|
GDK_TOUCH_MASK, /* GDK_TOUCH_END = 39 */
|
||||||
|
GDK_TOUCH_MASK /* GDK_TOUCH_CANCEL = 40 */
|
||||||
};
|
};
|
||||||
G_STATIC_ASSERT (G_N_ELEMENTS (type_masks) == GDK_EVENT_LAST);
|
G_STATIC_ASSERT (G_N_ELEMENTS (type_masks) == GDK_EVENT_LAST);
|
||||||
|
|
||||||
@ -8235,6 +8239,16 @@ _gdk_make_event (GdkWindow *window,
|
|||||||
event->button.state = the_state;
|
event->button.state = the_state;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case GDK_TOUCH_BEGIN:
|
||||||
|
case GDK_TOUCH_UPDATE:
|
||||||
|
case GDK_TOUCH_END:
|
||||||
|
case GDK_TOUCH_CANCEL:
|
||||||
|
event->touch.time = the_time;
|
||||||
|
event->touch.axes = NULL;
|
||||||
|
event->touch.state = the_state;
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
case GDK_SCROLL:
|
case GDK_SCROLL:
|
||||||
event->scroll.time = the_time;
|
event->scroll.time = the_time;
|
||||||
event->scroll.state = the_state;
|
event->scroll.state = the_state;
|
||||||
|
Loading…
Reference in New Issue
Block a user