Samium Gromoff <[email protected]> writes:
> The problem is with children's DragAction -- once the PanAction hits the
> movement threshold (as directed by GestureAction), the children stop
> getting the events, and PanAction takes over, because it attaches a
> "captured-event" handler to the ClutterStage itself.
[snip]
> So, for conditionalisation of the PanAction's "captured-event" signal
> handler, it appears that one has to install a signal handler to the
> scroll actor before the PanAction is attached.
>
> Once we're preceding the PanAction handler, we can control whether the
> event reaches that handler by returning CLUTTER_EVENT_PROPAGATE or
> CLUTTER_EVENT_STOP.
>
> So far so good.  But then we need to deliver the event to one of the
> scroll's children -- that is, if the event actually belongs to a child.
>
> So, we either manually iterate over children, "picking" the first (if
> any), whose bounding box covers the event.  Or we opt to use
> clutter_stage_get_actor_at_pos(), which could be more or less expensive,
> but is certainly more precise, if we choose to have complex Cogl children.
> 
> Very well, we have our candidate.  Now what?

It was much simpler that I thought.

To skip the PanAction handler, the preceding handler should:

1. Stop the signal emission on the current ClutterActor,
   using g_signal_stop_emission().
2. Return CLUTTER_EVENT_PROPAGATE.

-- 
regards,
Samium Gromoff
_______________________________________________
clutter-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/clutter-list

Reply via email to