stage: implement touch event throttling
https://bugzilla.gnome.org/show_bug.cgi?id=709761
This commit is contained in:
parent
7ae3b32cf1
commit
90c05e98a8
@ -921,19 +921,31 @@ _clutter_stage_process_queued_events (ClutterStage *stage)
|
|||||||
check_device = TRUE;
|
check_device = TRUE;
|
||||||
|
|
||||||
/* Skip consecutive motion events coming from the same device */
|
/* Skip consecutive motion events coming from the same device */
|
||||||
if (priv->throttle_motion_events &&
|
if (priv->throttle_motion_events && next_event != NULL)
|
||||||
next_event != NULL &&
|
{
|
||||||
event->type == CLUTTER_MOTION &&
|
if (event->type == CLUTTER_MOTION &&
|
||||||
(next_event->type == CLUTTER_MOTION ||
|
(next_event->type == CLUTTER_MOTION ||
|
||||||
next_event->type == CLUTTER_LEAVE) &&
|
next_event->type == CLUTTER_LEAVE) &&
|
||||||
(!check_device || (device == next_device)))
|
(!check_device || (device == next_device)))
|
||||||
{
|
{
|
||||||
CLUTTER_NOTE (EVENT,
|
CLUTTER_NOTE (EVENT,
|
||||||
"Omitting motion event at %d, %d",
|
"Omitting motion event at %d, %d",
|
||||||
(int) event->motion.x,
|
(int) event->motion.x,
|
||||||
(int) event->motion.y);
|
(int) event->motion.y);
|
||||||
goto next_event;
|
goto next_event;
|
||||||
}
|
}
|
||||||
|
else if (event->type == CLUTTER_TOUCH_UPDATE &&
|
||||||
|
(next_event->type == CLUTTER_TOUCH_UPDATE ||
|
||||||
|
next_event->type == CLUTTER_LEAVE) &&
|
||||||
|
(!check_device || (device == next_device)))
|
||||||
|
{
|
||||||
|
CLUTTER_NOTE (EVENT,
|
||||||
|
"Omitting touch update event at %d, %d",
|
||||||
|
(int) event->touch.x,
|
||||||
|
(int) event->touch.y);
|
||||||
|
goto next_event;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_clutter_process_event (event);
|
_clutter_process_event (event);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user