This is odd. The crash is in the child-focus-changed signal handler, which is getting passed an unexpectedly NULL box. The same behaviour is evidenced by the nl-places-manager, too.
The strange strange thing is that at the point the signal is being raised, child->box is a perfectly valid object. Somewhere between
g_signal_emit_by_name (actor, "child-focus-changed", &child->box);
and the on_child_focus_changed signal handler actually getting called that pointer is getting NULLed.
While I was there I noticed that the marshaller set for the child-focus-changed signal in ctk-actor.c looks wrong; it's g_ccloseru_marshal_VOID_ENUM, but the signal gets passed a ClutterActorBox *, not an enum.
This is odd. The crash is in the child-focus-changed signal handler, which is getting passed an unexpectedly NULL box. The same behaviour is evidenced by the nl-places-manager, too.
The strange strange thing is that at the point the signal is being raised, child->box is a perfectly valid object. Somewhere between emit_by_ name (actor, "child- focus-changed" , &child->box); focus_changed signal handler actually getting called that pointer is getting NULLed.
g_signal_
and the on_child_
While I was there I noticed that the marshaller set for the child-focus-changed signal in ctk-actor.c looks wrong; it's g_ccloseru_ marshal_ VOID_ENUM, but the signal gets passed a ClutterActorBox *, not an enum.