mirror of
https://github.com/brl/mutter.git
synced 2024-11-23 00:20:42 -05:00
events: Deliver touch events to actors
https://bugzilla.gnome.org/show_bug.cgi?id=677390
This commit is contained in:
parent
d7f68f64d3
commit
0ec01a2e42
@ -2614,6 +2614,40 @@ _clutter_process_event_details (ClutterActor *stage,
|
|||||||
case CLUTTER_TOUCH_BEGIN:
|
case CLUTTER_TOUCH_BEGIN:
|
||||||
case CLUTTER_TOUCH_UPDATE:
|
case CLUTTER_TOUCH_UPDATE:
|
||||||
case CLUTTER_TOUCH_END:
|
case CLUTTER_TOUCH_END:
|
||||||
|
{
|
||||||
|
ClutterActor *actor;
|
||||||
|
gfloat x, y;
|
||||||
|
|
||||||
|
clutter_event_get_coords (event, &x, &y);
|
||||||
|
|
||||||
|
/* Only do a pick to find the source if source is not already set
|
||||||
|
* (as it could be in a synthetic event)
|
||||||
|
*/
|
||||||
|
if (event->any.source == NULL)
|
||||||
|
{
|
||||||
|
actor = _clutter_stage_do_pick (CLUTTER_STAGE (stage),
|
||||||
|
x, y,
|
||||||
|
CLUTTER_PICK_REACTIVE);
|
||||||
|
if (actor == NULL)
|
||||||
|
break;
|
||||||
|
|
||||||
|
event->any.source = actor;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* use the source already set in the synthetic event */
|
||||||
|
actor = event->any.source;
|
||||||
|
}
|
||||||
|
|
||||||
|
CLUTTER_NOTE (EVENT,
|
||||||
|
"Reactive event received at %.2f, %.2f - actor: %p",
|
||||||
|
x, y,
|
||||||
|
actor);
|
||||||
|
|
||||||
|
emit_pointer_event (event, device);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case CLUTTER_TOUCH_CANCEL:
|
case CLUTTER_TOUCH_CANCEL:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user