Hi Emmanuele, Thanks for the reply.
This is an expensive way because you must let redraw everything again to pick the underneath actor. Is that possible to add a feature to Clutter to cache all actors beneath the mouse event in one picking procedure? I think it is a common requirement to let through the mouse event to the underneath actors instead of the parent. Parent-child relationship is a logic relationship instead of the geometric relationship. To let the actor beneath get the unhandled event is more intuitive to the user than to let the parent get it, in my opinion. Furthermore, there is already a way to get parent from an actor. If one want to pass the event to parent it is every easy to implement with the current version of Clutter. Best Regards / Mit freundlichen Grüßen CHEN Kefeng 陈科峰 CM/ESW2-CN Tel. +86 512 6767 7549 Fax +86 512 6762 1200 -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Emmanuele Bassi Sent: Wednesday, February 08, 2012 9:56 PM To: [email protected] Subject: Re: Passing touch/mouse input to underlying Actor On 2012-01-20 at 11:21, Chen Kefeng (CM/ESW2-CN) wrote: > Maybe I have not stated my problem clearly. > > I describe it again. > > Say, I have two actors on my stage, actor_below and actor_above, both are set > reactive. Actor_below lies beneath actor_above. Both of them will get the > mouse event, say, button_pressed_event. If it returns FALSE in the callback > function of actor_above, the event will be received by the stage instead of > actor_below in the bubble phase. My intention is to let actor_below get the > event if actor_above is not interested in the event. > > Is there any way to do that? > Best Regards / Mit freundlichen Grüßen > CHEN Kefeng 陈科峰 > CM/ESW2-CN > Tel. +86 512 6767 7549 > Fax +86 512 6762 1200 > From: [email protected] > [mailto:[email protected]] On Behalf Of Chen > Kefeng (CM/ESW2-CN) > Sent: Thursday, January 19, 2012 10:01 AM > To: [email protected] > Subject: Passing touch/mouse input to underlying Actor > > Hi everybody, > > Nice to be here!! > > This problem programs have been bothering me for a long time. I hope that > someone could show me the way out. > > In our program we want to forward the unhandled mouse events from one actor > to the actors lying below. But if we return FALSE in the signal call back > only the parent of the actor will get the event instead. > > Does anybody have the experience to deal with this situation? I would very > appreciate it if someone can give me a hint! events will be bubbled up from the actor to its parent, recursively until the signal emission will hit the top-level. if the actors you're placing one on top of the other are not in a parent-child relationship, then the top-most actor will block the events for the actor underneath it. there is no way to avoid that: it's how Clutter works. you can, strictly speaking, find out the actor underneath the actor underneath the pointer by hiding the top-most actor, then calling clutter_stage_get_actor_at_pos(), and finally showing the top-most actor, but it'll be expensive, and it's not a great plan. ciao, Emmanuele. -- Emmanuele Bassi, Intel Open Source Technology Center _______________________________________________ clutter-app-devel-list mailing list [email protected] http://lists.clutter-project.org/listinfo/clutter-app-devel-list _______________________________________________ clutter-app-devel-list mailing list [email protected] http://lists.clutter-project.org/listinfo/clutter-app-devel-list
