gdk: Add internal API to set "pointer emulated" flag on events
This flag will be used for non-pointer events that are emulated from eg. touch events, or pointer events being emulated.
This commit is contained in:
committed by
Matthias Clasen
parent
bc8401d1ed
commit
a490d2ebda
@ -485,7 +485,31 @@ gdk_event_is_allocated (const GdkEvent *event)
|
|||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
_gdk_event_set_pointer_emulated (GdkEvent *event,
|
||||||
|
gboolean emulated)
|
||||||
|
{
|
||||||
|
if (gdk_event_is_allocated (event))
|
||||||
|
{
|
||||||
|
GdkEventPrivate *private = (GdkEventPrivate *) event;
|
||||||
|
|
||||||
|
if (emulated)
|
||||||
|
private->flags |= GDK_EVENT_POINTER_EMULATED;
|
||||||
|
else
|
||||||
|
private->flags &= ~(GDK_EVENT_POINTER_EMULATED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
_gdk_event_get_pointer_emulated (GdkEvent *event)
|
||||||
|
{
|
||||||
|
if (gdk_event_is_allocated (event))
|
||||||
|
return (((GdkEventPrivate *) event)->flags & GDK_EVENT_POINTER_EMULATED) != 0;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gdk_event_copy:
|
* gdk_event_copy:
|
||||||
* @event: a #GdkEvent
|
* @event: a #GdkEvent
|
||||||
|
|||||||
@ -148,7 +148,13 @@ typedef enum
|
|||||||
/* Following flag is set for events on the event queue during
|
/* Following flag is set for events on the event queue during
|
||||||
* translation and cleared afterwards.
|
* translation and cleared afterwards.
|
||||||
*/
|
*/
|
||||||
GDK_EVENT_PENDING = 1 << 0
|
GDK_EVENT_PENDING = 1 << 0,
|
||||||
|
|
||||||
|
/* The following flag is set for:
|
||||||
|
* 1) touch events emulating pointer events
|
||||||
|
* 2) pointer events being emulated by a touch sequence.
|
||||||
|
*/
|
||||||
|
GDK_EVENT_POINTER_EMULATED = 1 << 1
|
||||||
} GdkEventFlags;
|
} GdkEventFlags;
|
||||||
|
|
||||||
struct _GdkEventPrivate
|
struct _GdkEventPrivate
|
||||||
@ -273,6 +279,10 @@ GdkEvent* _gdk_event_unqueue (GdkDisplay *display);
|
|||||||
void _gdk_event_filter_unref (GdkWindow *window,
|
void _gdk_event_filter_unref (GdkWindow *window,
|
||||||
GdkEventFilter *filter);
|
GdkEventFilter *filter);
|
||||||
|
|
||||||
|
void _gdk_event_set_pointer_emulated (GdkEvent *event,
|
||||||
|
gboolean emulated);
|
||||||
|
gboolean _gdk_event_get_pointer_emulated (GdkEvent *event);
|
||||||
|
|
||||||
void _gdk_event_emit (GdkEvent *event);
|
void _gdk_event_emit (GdkEvent *event);
|
||||||
GList* _gdk_event_queue_find_first (GdkDisplay *display);
|
GList* _gdk_event_queue_find_first (GdkDisplay *display);
|
||||||
void _gdk_event_queue_remove_link (GdkDisplay *display,
|
void _gdk_event_queue_remove_link (GdkDisplay *display,
|
||||||
|
|||||||
Reference in New Issue
Block a user