mutter/doc/reference/clutter
Emmanuele Bassi 1520ba6190 actor: Add internal child flag
ClutterActor checks, when destroying and reparenting, if the parent
actor implements the Container interface, and automatically calls the
remove() method to perform a clean removal.

Actors implementing Container, though, might have internal children;
that is, children that are not added through the Container API. It is
already possible to iterate through them using the Container API to
avoid breaking invariants - but calling clutter_actor_destroy() on
these children (even from the Container implementation, and thus outside
of Clutter's control) will either lead to leaks or to segmentation
faults.

Clutter needs a way to distinguish a clutter_actor_set_parent() done on
an internal child from one done on a "public" child; for this reason, a
push/pop pair of functions should be available to Actor implementations
to mark the section where they wish to add internal children:

  ➔ clutter_actor_push_internal ();
    ...
    clutter_actor_set_parent (child1, parent);
    clutter_actor_set_parent (child2, parent);
    ...
  ➔ clutter_actor_pop_internal ();

The set_parent() call will automatically set the newly added
INTERNAL_CHILD private flag on each child, and both
clutter_actor_destroy() and clutter_actor_unparent() will check for the
flag before deciding whether to call the Container's remove method.
2009-12-18 23:33:14 +00:00
..
actor-box.png Merged clutter-ivan branch into trunk. 2008-04-25 13:37:36 +00:00
bin-layout.png docs: Add images for layout managers 2009-10-23 17:32:18 +01:00
box-layout.png docs: Add images for layout managers 2009-10-23 17:32:18 +01:00
building-clutter.xml docs: Fix OS X docs to install Ports in correct order 2009-11-06 11:48:08 +00:00
clutter-animation-tutorial.xml [docs] Fix wrong XML elements 2009-07-21 16:35:50 +01:00
clutter-docs.xml.in layout: Document BoxLayout 2009-10-14 11:31:48 +01:00
clutter-overview.xml 2008-06-26 Emmanuele Bassi <ebassi@openedhand.com> 2008-06-26 09:02:58 +00:00
clutter-sections.txt actor: Add internal child flag 2009-12-18 23:33:14 +00:00
clutter.types layout: Document BoxLayout 2009-10-14 11:31:48 +01:00
creating-behaviours.xml [docs] Fix wrong XML elements 2009-07-21 16:35:50 +01:00
easing-modes.png [docs] Update the easing modes documentation 2009-01-20 18:13:36 +00:00
easing-modes.svg [docs] Update the easing modes documentation 2009-01-20 18:13:36 +00:00
event-flow.dia * clutter/event-flow.png: fixed typo. 2008-06-13 10:37:33 +00:00
event-flow.png * clutter/event-flow.png: fixed typo. 2008-06-13 10:37:33 +00:00
flow-layout-horizontal.png docs: Add images for layout managers 2009-10-23 17:32:18 +01:00
flow-layout-vertical.png docs: Add images for layout managers 2009-10-23 17:32:18 +01:00
glossary.xml [docs] Add more collateral documentation 2009-09-03 16:51:14 +01:00
Makefile.am docs: Add images for layout managers 2009-10-23 17:32:18 +01:00
migrating-ClutterEffect.xml [docs] Fix typo in the effects migration guide 2009-07-21 09:20:16 +01:00
migrating-ClutterPath.xml [docs] Add a Path migration guide 2009-09-09 16:01:07 +01:00
path-alpha-func.png Merged clutter-ivan branch into trunk. 2008-04-25 13:37:36 +00:00
running-clutter.xml docs: Detail the Clutter debugging flags 2009-11-14 13:03:59 +00:00
subclassing-ClutterActor.xml [docs] Update the "Subclassing Actor" chapter 2009-09-27 11:39:25 +01:00