1. 19 Jan, 2012 7 commits
    • Emmanuele Bassi's avatar
      Release Clutter 1.9.6 (snapshot) · 75d97ffd
      Emmanuele Bassi authored
      75d97ffd
    • Emmanuele Bassi's avatar
      build: Bump up the Cogl requirement · a222e75e
      Emmanuele Bassi authored
      Clutter requires a new version of Cogl's API, but we never bumped the
      requirement inside configure.ac.
      a222e75e
    • Emmanuele Bassi's avatar
      stage: Use clutter_actor_set_allocation() · 480514b7
      Emmanuele Bassi authored
      Instead of chaining up, given that we want to bypass chaining up and
      just set the allocation. This also allows us to bail out of the
      overridden allocate vfunc check, given that we want the default Actor
      behaviour to apply - including eventual layout manager delegates.
      480514b7
    • Emmanuele Bassi's avatar
      f7bae2a0
    • Emmanuele Bassi's avatar
      docs: Add clutter_actor_set_allocation() · acf8aff6
      Emmanuele Bassi authored
      acf8aff6
    • Emmanuele Bassi's avatar
      b206a3d0
    • Emmanuele Bassi's avatar
      actor: Maintain behaviour of old allocate() implementations · 67eeea6b
      Emmanuele Bassi authored
      The usual way to implement a container actor is to override the
      allocate() virtual function, chain up, and then allocate the actor's
      children.
      
      Clutter now has the ability to delegate layout management to
      ClutterLayoutManager directly; in the allocation, this is done by
      checking whether the actor has children, and then call
      clutter_layout_manager_allocate() from within the default implementation
      of the ClutterActor::allocate() vfunc. The same vfunc that everyone, has
      been chaining up to.
      
      Whoopsie.
      
      Well, we can check if there's a layout manager, and if it's NULL, we
      bail out. Except that there's a default layout manager, and it's the
      fixed layout manager, so that classes like Group and Stage work by
      default.
      
      Double whoopsie.
      
      The fix for this scenario is a bit nasty; we have to check if the actor
      class has overridden the allocate() vfunc or not, before actually
      looking at the layout manager. This means that classes that override the
      allocate() vfunc are expected to do everything that ClutterActor's
      default implementation does - which I think it's a fair requirement to
      have.
      
      For newly written code, though, it would probably be best if we just
      provided a function that does the right thing by default, and that
      you're supposed to be calling from within the allocate() vfunc
      implementation, if you ever chose to override it. This new function,
      clutter_actor_set_allocation(), should come with a warning the size of
      Texas, to avoid people thinking it's a way to override the whole "call
      allocate() on each child" mechanism. Plus, it should check if we're
      inside an allocation sequence, and bail out if not.
      67eeea6b
  2. 18 Jan, 2012 2 commits
  3. 17 Jan, 2012 25 commits
  4. 16 Jan, 2012 6 commits