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
