On Dec 27, 2007 9:31 PM, Emmanuele Bassi > when an event is propagated
from the backend to Clutter core, it will
> start a chain of signal emissions which will go in two directions:
> starting from the actor which received the event, the parents hierarchy
> will be walked backwards until the ClutterStage is reached. for every
> actor, the ClutterActor::captured-event signal will be emitted in this
> phase. the ::captured-event is generic, so it will receive every event
> (button, key, crossing, etc.). this phase is called "event capture".
>
> once the stage has been reached, the parent hierarchy will be walked
> again, starting from the stage until the actor is reached; for each
> actor, the generic ClutterActor::event signal will be emitted, and if
> the event has a specific signal (button-press-event, key-press-event,
> enter-event, etc.), that signal will be emitted as well. this phase is
> called "event bubbling".
The above descriptoin got the order the ancestry is traversed wrong.
For the following scenario:
Stage -> Group -> Button
An event that was deemed to be the recipient based on the picking will
first go through the capture phase, where it is possible to capture
the event in the ancestors. Thus
Capture phase order:
stage, group, button
> each signal handler attached to the ::captured-event or any of ::event
> signals emitted in the bubbling phase can block the emission chain by
> simply returning TRUE - meaning that the handler fully consumed the
> event.
If the event was not consumed by a handler returning TRUE in the
capture phase the bubbling phase will start. The order in the bubbling
phase is from the recipient actor up to the stage thus:
Bubble phase order:
button, group, stage.
/Øyvind K.
--
«The future is already here. It's just not very evenly distributed»
-- William Gibson
http://pippin.gimp.org/ http://ffii.org/
--
To unsubscribe send a mail to [EMAIL PROTECTED]