# Generated by configure.  Do not edit.

commit ca5188edbf962e065dd80726a4a4e92ccc8cfacf
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 14:53:55 2010 +0100

    Release Clutter 1.5.2 (snapshot)

 NEWS         |   52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac |    2 +-
 2 files changed, 53 insertions(+), 1 deletions(-)

commit 6af0ee2cbe2d6584b523809f160f56daf16eb583
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 14:12:21 2010 +0100

    cogl-x11: Trap glXDestroyPixmap()
    
    There are ordering issues in the pixmap destruction with current and
    past X11 server, Mesa and dri2. Under some circumstances, an X pixmap
    might be destroyed with the GLX pixmap still referencing it, and thus
    the X server will decide to destroy the GLX pixmap as well; then, when
    Cogl tries to destroy the GLX pixmap, it gets BadDrawable errors.
    
    Clutter 1.2 used to trap + sync all calls to glXDestroyPixmap(), but
    then we assumed that the ordering issue had been solved. So, we're back
    to square 1.
    
    I left a Big Fat Comment™ right above the glXDestroyPixmap() call
    referencing the bug and the reasoning behind the trap, so that we don't
    go and remove it in the future without checking that the issue has been
    in fact solved.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2324

 clutter/cogl/cogl/winsys/cogl-texture-pixmap-x11.c |   22 ++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

commit f5aeabadd5faf699ab04ec24d6db12297ee6ee30
Author: Alejandro Piñeiro <apinheiro@igalia.com>
Date:   Mon Oct 4 02:17:40 2010 +0200

    Fixing cally.pc.in and moving include headers to previous directory
    
    After commit 8dd8fbdb some errors appear if you try work directly
    against cally:
    
     * cally.pc.in removed some elements. After install clutter, doing
       pkg-config --cflags cally-1.0
       fails due missing winsys
    
     * cally headers were moved from clutter-1.0/cally to
       clutter-1.0/clutter/cally.  Applications using it (yes I know,
       nobody is officially using it) would require to:
        * Change their include.
        * Add directly a dependency to cally, in order to use the cally.pc
          file with the correct directory include.
    
    Note: Take into account that accessibility support still works (ie:
    clutter_get_accessibility_enabled). This bug only prevents
    applications to work directly against cally (ie: create a CallyActor
    subclass)
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2353
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 clutter/Makefile.am       |    5 +++--
 clutter/cally/cally.pc.in |    6 ++++++
 2 files changed, 9 insertions(+), 2 deletions(-)

commit d3b6dd5ec7dda1557b2f5e5f14d3a73c02781683
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 11:30:32 2010 +0100

    effect: Fix up the class ABI
    
    Landing the paint-box branch accidentally added two slots to the
    ClutterEffectClass vtable, plus the get_paint_volume() function
    pointer. This is an ABI break from 1.4.

 clutter/clutter-effect.h |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

commit e1a1050a39a607aee4c97c4558c0a637136f6b52
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 11:27:16 2010 +0100

    actor-box: Constify arguments for union
    
    The input arguments for clutter_actor_box_union() should be constified,
    since they will not be modified by the function.

 clutter/clutter-actor.c |   14 +++++++-------
 clutter/clutter-types.h |    4 ++--
 2 files changed, 9 insertions(+), 9 deletions(-)

commit 45b6d7d47a943faad8d82e0b196be058a1c45193
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 11:26:46 2010 +0100

    docs: Fix the annotations of ActorClass

 clutter/clutter-actor.h |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

commit bdb24701f04cec42d388fe415aba16b29c2678e5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 10:52:36 2010 +0100

    build: Add -xobjective-c to the fruity backend section
    
    Like we do for the Quartz backend, we should turn on the -xobjective-c
    compiler flag for the Fruity backend.
    
    This does not mean that the backend actually works.

 clutter/Makefile.am |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

commit db5e33d4a547862c772e93efbfd041baaebd6423
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 10:44:00 2010 +0100

    docs: Remove TODO
    
    Clutter has long since moved all the RFE and roadmap tracking to
    Bugzilla. The TODO is just a relic of an ancient past, where men
    were real men, women were real women, and fuzzy little creatures
    from Alpha Centauri were fuzzy little creatures from Alpha Centauri.

 TODO |    7 -------
 1 files changed, 0 insertions(+), 7 deletions(-)

commit 0cf2f50ba60d9268f162da89a19f2387b1d6e9cb
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 09:09:13 2010 +0100

    build: Remove redundant EXTRA_DISTs
    
    The files for the backend that we conditionally compile are
    automatically added to the dist process by automake.

 clutter/Makefile.am |   37 ++-----------------------------------
 1 files changed, 2 insertions(+), 35 deletions(-)

commit 7728ea951b0675ef3f97c160f212eb9ae72ce45e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 09:08:07 2010 +0100

    docs: Add unused symbols to the Clutter API reference

 doc/reference/clutter/clutter-sections.txt |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

commit a29623e8388c949b0c18853ce8c9f0e494a4317d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 08:57:29 2010 +0100

    build: Unconditionally add GLES2 shaders to EXTRA_DIST

 clutter/cogl/cogl/Makefile.am |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

commit ba09e9c6df28bbd57a400de3d6acbe14fd53b7f6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Oct 3 17:21:10 2010 +0100

    build: Generate a stub announcement email when releasing

 build/autotools/Makefile.am.release |   42 +++++++++++++++++++++++++++++++---
 1 files changed, 38 insertions(+), 4 deletions(-)

commit df5702e463769c53a8badf725d158fe4ed94c76e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Oct 3 16:37:41 2010 +0100

    docs: Update the RELEASING checklist

 doc/RELEASING |   60 +++++++++++++++++++++++++++++++-------------------------
 1 files changed, 33 insertions(+), 27 deletions(-)

commit 2ed2b7eb83aeb813a8d3d734dd870bf739ef345a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Oct 3 16:13:02 2010 +0100

    build: Only generate bzip2 tarballs
    
    Don't generate both bz2 and gz tarballs: we only use the former anyway,
    and the latter just adds time for distcheck to complete.
    
    The gz tarball will be generated by the remote installation scripts when
    publishing the release.

 configure.ac |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 939333b4f2dcd5fd7045af7c57db4e21de06d57b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Oct 3 16:10:44 2010 +0100

    build: Dist every backend file
    
    All backend files should be present in the tarball generated by `make
    dist`, to allow building Clutter on different platforms.

 clutter/Makefile.am |  150 ++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 118 insertions(+), 32 deletions(-)

commit 6df136ae7cadea1df48d531af0730bf3867f3463
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Oct 3 15:28:14 2010 +0100

    container: Do not emit a signal in the class handler
    
    Yes, I am that stupid.

 clutter/clutter-container.c |   12 +++++-------
 1 files changed, 5 insertions(+), 7 deletions(-)

commit e8d3ab4fd3d85b31230be4a59463338438c5621a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Oct 3 15:16:41 2010 +0100

    introspection: Skip Script.connect_signals_full()
    
    It's meant to be used by language bindings, not by applications.

 clutter/clutter-script.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 19b93a94aef1700c83edb9e555f1507fcee2f249
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Oct 3 15:12:01 2010 +0100

    container: Fix the marshaller for ::child-notify
    
    The marshaller was defined as OBJECT,OBJECT,PARAM but the signal
    definition used only two arguments. Since the signal never worked
    and we never got any report about it, nobody could be possibly
    using the ::child-notify signal.

 clutter/clutter-container.c  |    2 +-
 clutter/clutter-marshal.list |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 96db215ed3bb79915bfb5b9e037d116c83876a8d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Oct 3 14:53:14 2010 +0100

    build: Automate the release process

 Makefile.am                         |   12 ++++--
 build/autotools/Makefile.am         |    1 +
 build/autotools/Makefile.am.release |   68 +++++++++++++++++++++++++++++++++++
 3 files changed, 77 insertions(+), 4 deletions(-)

commit 87bb089b572071632f3b8c2a63756a07e5d5a73a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Oct 3 11:02:56 2010 +0100

    docs: Update the coding style
    
    Resynchronize with gtk+'s coding style document, since they switched to
    ours.

 doc/CODING_STYLE |   88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 88 insertions(+), 0 deletions(-)

commit c4668f04f745f30657379727424137b62d44248d
Author: Aron Xu <aronxu@gnome.org>
Date:   Thu Sep 30 15:20:05 2010 +0800

    Update zh_CN translation.
    
    Signed-off-by: Aron Xu <aronxu@gnome.org>
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 po/zh_CN.po |  290 +++++++++++++++++++++++++++++------------------------------
 1 files changed, 143 insertions(+), 147 deletions(-)

commit 7ac84cf7a3695aa495ca28dbf172c8f4f6e48780
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 30 14:58:23 2010 +0100

    container: Add child_notify() wrapper
    
    The child_notify() virtual function on ClutterContainer does not have a
    wrapper for implementations to call.

 clutter/clutter-container.c                |   28 ++++++++++++++++++++++++++++
 clutter/clutter-container.h                |    3 +++
 doc/reference/clutter/clutter-sections.txt |    1 +
 3 files changed, 32 insertions(+), 0 deletions(-)

commit fc344fb93a153f91ea4bafd9fe25dd88d27e8082
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 30 13:11:05 2010 +0100

    container: Implement ::child-notify
    
    Since we added child properties to the Container interface we made a
    guarantee that the ::child-notify signal would be emitted whenever a
    property was set using clutter_container_child_set*().
    
    We were lying.
    
    The child_notify virtual function was not implemented, and the signal
    was never emitted.
    
    We also used a G_LIKELY() macro while checking for non-NULL on a
    function pointer that was by default set to NULL, thus making the
    setting of child properties far less efficient than needed.

 clutter/clutter-container.c |   21 ++++++++++++++++++---
 1 files changed, 18 insertions(+), 3 deletions(-)

commit 18ff73c24471694eb951c7192f15528b594f09b5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 30 12:43:10 2010 +0100

    build: Add more metadata to the introspection files

 clutter/Makefile.am |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

commit 6a95457b3f0927ec0adaebc9c91499f28ef804a0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 30 12:32:08 2010 +0100

    cookbook: Remove unused variable from the animator example

 doc/cookbook/examples/animations-moving-animator.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

commit fde6efc690e6378eb1999267e5b15dc7c8accd43
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 30 12:31:28 2010 +0100

    build: Make Cally.gir depend on Cogl.gir
    
    Since Cally's introspection data depends on it.

 clutter/Makefile.am |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit c202156794289d210ed4bdf9c9fe6d522685fafd
Merge: 077a5b4 cb191ff
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 30 12:24:32 2010 +0100

    Merge remote branch 'elliot/events-buttons'
    
    * elliot/events-buttons:
      cookbook: Add recipe about handling button events
      cookbook: Example of using button press and release events
      cookbook: Example of ClutterClickAction
      cookbook: Example of simple handling of button events

commit 077a5b4c34d7b52d8831ccce4c572c7dcae04a6e
Author: Colin Walters <walters@verbum.org>
Date:   Wed Sep 29 13:18:03 2010 -0400

    introspection: Update to changed variables for header file names
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 clutter/Makefile.am |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 32d647ddd15ebddf91aa15b092fdcdf14d31ec4f
Author: Ray Strode <rstrode@redhat.com>
Date:   Wed Sep 29 18:43:30 2010 -0400

    actor: sync entry has_clip member to clip state
    
    The clutter stage has a list of entries of actors waiting to be redrawn.
    Each entry has a "clip" ClutterPaintVolume member which represents which
    how much of the actor needs to get redrawn.  It's possible for there to
    be no clip associated with the entry.  In this case, the clip member is
    invalid, the has_clip member should be set to false.
    
    This commit fixes a bug where the has_clip member was not being
    initially, explicitly set to false for new entries, and not being
    explicitly set to false in the event the clip associated with the entry
    is freed.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2350
    
    Signed-off-by: Robert Bragg <robert@linux.intel.com>

 clutter/clutter-stage.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

commit fba633529148e65b9e136ea082fa7f853b789d96
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Sep 30 11:18:23 2010 +0100

    actor: don't ignore clip for clipped redraws
    
    In all the changes made recently to how we handle redraws and adding
    support for paint-volumes we stopped looking at explicit clip regions
    passed to _clutter_actor_queue_redraw_with_clip.
    
    In _clutter_actor_finish_queue_redraw we had started always trying to
    clip the redraw to the paint-volume of the actor, but forgot to consider
    that the user may have already determined the clip region for us!
    
    Now we first check if the given clip != NUll and if so we don't need to
    calculate the paint-volume of the actor.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2349

 clutter/clutter-actor.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

commit 471659ed4b2f16749c050701bcdc911405e9e018
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Sep 30 02:37:24 2010 +0100

    test-pixmap: add timeout to draw arcs on pixmap
    
    As a convenient test that clipped redraws are working correctly in
    response to X pixmap damage this updates test-pixmap to have a repeating
    1 second timeout that draws arcs on the pixmap.

 tests/interactive/test-pixmap.c |   26 +++++++++++++++++---------
 1 files changed, 17 insertions(+), 9 deletions(-)

commit 18e3273fb1e3ba231d370294f13f180b5df68158
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Sep 30 02:00:24 2010 +0100

    x11-tfp: Implement get_paint_volume virtual
    
    One of the later changes made on the paint volume branch before merging
    with master was to make paint volumes opt in only since we couldn't make
    any safe assumptions about how custom actors may constrain their
    painting. We added very conservative implementations for the existing
    Clutter actors - including for ClutterTexture which
    ClutterX11TexturePixmap is a sub-class of - but we were conservative to
    the extent of explicitly checking the GType of the actor so we would
    avoid making any assumptions about sub-classes. The upshot was that we
    neglected to implement the get_paint_volume vfunc for
    ClutterX11TexturePixmap.
    
    This patch provides an implementation that simply reports the actor's
    allocation as its paint volume. Also unlike for other core actors it
    doesn't explicitly check the GType so we are assuming that all existing
    sub-classes of ClutterX11TexturePixmap constrain their drawing to the
    actor's transformed allocation. If anyone does want to draw outside the
    allocation in future sub-classes, then they should also provide an
    updated get_paint_volume implementation.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2349

 clutter/x11/clutter-x11-texture-pixmap.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

commit 83eb5ab88cb31fc85016975055d28165300b9867
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Sep 24 01:01:33 2010 +0100

    material: tweak dot file debug code
    
    When using the debug function _cogl_debug_dump_materials_dot_file to
    write a dot file representing the sparse graph of material state we now
    only show a link between materials and layers when the material directly
    owns that layer reference (i.e. just those referenced in
    material->layer_differences) This makes it possible to see when
    ancestors of a material are being deferred too for layer state.
    
    For example when looking at the graph if you see that a material has an
    n_layers of 3 but there is only a link to 2 layers, then you know you
    need to look at it's ancestors to find the last layer.

 clutter/cogl/cogl/cogl-material.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

commit cb191ff6f18e291810077271f853658c8d679e3d
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Thu Sep 30 11:12:14 2010 +0100

    cookbook: Add recipe about handling button events
    
    Recipe covers adding handlers for button-press-event and
    button-release-event signals on actors, and how to
    examine the content of a ClutterButtonEvent via API functions.
    
    The discussion section explains about click count
    (the criteria for how clicks get counted, including
    distance and time settings); how button numbers are reported;
    and how to use ClutterClickAction as an alternative
    for press + release in certain scenarios.

 doc/cookbook/events.xml |  388 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 388 insertions(+), 0 deletions(-)

commit d8a9026b842655d23d839a639540bb134f734d84
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Sep 29 17:04:25 2010 +0100

    win32: Fix the CLUTTER_* keysym macros
    
    In 4ee05f8e21d the namespace for the clutter keysym macros were
    changed to CLUTTER_KEY_* but the win32 events backend was still
    referring to the old names.

 clutter/win32/clutter-event-win32.c |  110 +++++++++++++++++-----------------
 1 files changed, 55 insertions(+), 55 deletions(-)

commit 94439e55265d91e0c5419306115d2af02378e75e
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Tue Sep 28 16:53:30 2010 +0100

    cookbook: Example of using button press and release events
    
    A longer example of using button press and release events
    to draw rectangles with random colors.

 doc/cookbook/examples/Makefile.am            |    2 +
 doc/cookbook/examples/events-buttons-lasso.c |  154 ++++++++++++++++++++++++++
 2 files changed, 156 insertions(+), 0 deletions(-)

commit 0cda6c006b5909da5919c4e3a1492a32895c596c
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Tue Sep 28 16:37:26 2010 +0100

    cookbook: Example of ClutterClickAction
    
    Example of handling clicks on an actor; part of the recipe on
    handling button events.

 doc/cookbook/examples/Makefile.am            |    2 +
 doc/cookbook/examples/events-buttons-click.c |   66 ++++++++++++++++++++++++++
 2 files changed, 68 insertions(+), 0 deletions(-)

commit fc9ecdf82ed13cf14be9e8fd5fda9787f8972205
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Mon Sep 27 16:36:16 2010 +0100

    cookbook: Example of simple handling of button events
    
    Added an example showing how to examine the content
    of a ClutterButtonEvent in a signal handler.

 doc/cookbook/examples/Makefile.am      |    2 +
 doc/cookbook/examples/events-buttons.c |  107 ++++++++++++++++++++++++++++++++
 2 files changed, 109 insertions(+), 0 deletions(-)

commit f753b0c4a15421e984cf3b2fcb1ccce7f0e6a61d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 30 10:29:00 2010 +0100

    Wrap g_object_class_install_properties()
    
    GObject ≥ 2.26.0 added a nice convenience call for installing properties
    from an array of GParamSpec. Since we're already storing all GParamSpec
    in an array in order to use them with g_object_notify_by_pspec(), this
    turns out nicely for us.
    
    Since we do not depend on GLib 2.26 (yet), we need to provide a simple
    private wrapper that implements the fall back to the default
    g_object_class_install_property() call.
    
    ClutterDragAction has been converted as a proof of concept.

 clutter/clutter-drag-action.c |   71 +++++++++++++++++++---------------------
 clutter/clutter-private.h     |   17 ++++++++++
 2 files changed, 51 insertions(+), 37 deletions(-)

commit f090c3ea496b2bf79b2fb0c7ab6a80299c59aed1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 30 10:27:10 2010 +0100

    stage: Add more checks on the stage window retrieval
    
    During destruction, the StageWindow implementation associated to a Stage
    might be NULL. We need to add more checks for a) the IN_DESTRUCTION flag
    being set and b) the StageWindow pointer being NULL. Otherwise, we will
    get warnings during the destruction of the Stage.

 clutter/clutter-stage.c |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

commit 52c4d6fa0c5f5260de5093967cdd1036e351050c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 29 17:32:57 2010 +0100

    build: Use platform detection to add -no-undefined
    
    Instead of relying on the flavour passed to the configure script.

 configure.ac |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

commit 7aaef8abeed4d3903465ac9d8fd0a916d17aab79
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 29 16:46:06 2010 +0100

    modules: Use the stable branch of json-glib

 build/clutter.modules |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit a278a1f94053372d49fb31f82cac551f186a28f4
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Sep 29 15:40:22 2010 +0100

    cogl-texture-2d-sliced: Don't create the slice textures twice
    
    Both of the cogl_texture_2d_sliced_new functions called the
    slices_create function which creates the underlying GL
    textures. However this was also called by init_base so the textures
    would end up being created twice. This would make it leak the GL
    textures and the arrays which point to them.

 clutter/cogl/cogl/cogl-texture-2d-sliced.c |   18 ------------------
 1 files changed, 0 insertions(+), 18 deletions(-)

commit 54f5e168ecd67838d9fae08912e37f47d786f45e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 29 16:05:55 2010 +0100

    Bump up dependency of json-glib to 0.12.0
    
    New stable release.

 README       |    2 +-
 configure.ac |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 66b0c1969c72ad49482befb3136b3e8478b07c58
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 22 12:56:33 2010 +0100

    Remove the internal copy of JSON-GLib
    
    The internal copy of JSON-GLib was meant to go away right after the 1.0
    release, given that JSON-GLib was still young and relatively unknown.
    
    Nowadays, many projects started depending on this little library, and
    distributions ship it and keep it up to date.
    
    Keeping a copy of JSON-GLib means keeping it up to date; unfortunately,
    this would also imply updating the code not just for the API but for the
    internal implementations.
    
    Starting with the 1.2 release, Clutter preferably dependend on the
    system copy; with the 1.4 release we stopped falling back automatically.
    The 1.6 cycle finally removes the internal copy and requires a copy of
    JSON-GLib installed on the target system in order to compile Clutter.

 README                            |   15 +-
 clutter/Makefile.am               |   66 +--
 clutter/clutter-json.h.in         |   11 -
 clutter/clutter-script-private.h  |    3 +-
 clutter/clutter-script.c          |    2 -
 clutter/clutter-scriptable.h      |    2 +-
 clutter/json/json-array.c         |  725 ------------------------
 clutter/json/json-generator.c     |  646 ---------------------
 clutter/json/json-generator.h     |   83 ---
 clutter/json/json-glib.h          |   12 -
 clutter/json/json-marshal.c       |  130 -----
 clutter/json/json-marshal.h       |   37 --
 clutter/json/json-node.c          |  770 -------------------------
 clutter/json/json-object.c        |  888 -----------------------------
 clutter/json/json-parser.c        | 1124 -------------------------------------
 clutter/json/json-parser.h        |  147 -----
 clutter/json/json-types-private.h |   61 --
 clutter/json/json-types.h         |  288 ----------
 configure.ac                      |   90 +---
 doc/reference/clutter/Makefile.am |    2 -
 20 files changed, 13 insertions(+), 5089 deletions(-)

commit e36cc40a49a9f0c2e200a0326451333dbb68b4ac
Merge: 0f22e92 8dd8fbd
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 29 15:55:58 2010 +0100

    Merge branch 'wip/non-recursive'
    
    * wip/non-recursive:
      build: Start moving to a non-recursive layout

commit 0f22e922e3d03bfa9e7272aa6d2819748c3913c7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 29 15:44:51 2010 +0100

    modules: Fix up mesa module

 build/clutter.modules |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

commit e072d797b1b5cbdc3c448f1e1acdd6adac0c833b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 29 15:23:53 2010 +0100

    modules: Add mesa and wayland to the moduleset

 build/clutter.modules |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

commit 42f6364cac945e451725fc4aeeccf28ee5019ff3
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Sep 24 02:24:36 2010 +0100

    actor: don't dirty pick buffer in _real_queue_redraw
    
    Since re-working how redraws are queued it is no longer necessary to
    dirty the pick buffer in _clutter_actor_real_queue_redraw since this
    should now reliably be handled in _clutter_stage_queue_actor_redraw.

 clutter/clutter-actor.c |    9 +--------
 1 files changed, 1 insertions(+), 8 deletions(-)

commit 51fca9d96807b227d00b0bc58e6e5f216024cf91
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Sep 13 00:33:23 2010 +0100

    actor: Adds private _clutter_actor_traverse API
    
    This adds two internal functions relating to explicit traversal of the
    scenegraph:
    _clutter_actor_foreach_child
    _clutter_actor_traverse
    
    _clutter_actor_foreach_child just iterates the immediate children of an
    actor, and with a new ClutterForeachCallback type it allows the
    callbacks to break iteration early.
    
    _clutter_actor_traverse traverses the given actor and all of its
    decendants. Again traversal can be stopped early if a callback returns
    FALSE.
    
    The first intended use for _clutter_actor_traverse is to maintain a
    cache pointer to the stage for all actors. In this case we will need to
    update the pointer for all descendants of an actor when an actor is
    reparented in any way.

 clutter/clutter-actor.c   |   64 +++++++++++++++++++++++++++++++++++++++++++++
 clutter/clutter-private.h |   32 ++++++++++++++++++++++
 2 files changed, 96 insertions(+), 0 deletions(-)

commit 9a1abbc713537b3ef381e8e9ea1a5e910613567e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Sep 12 23:49:02 2010 +0100

    actor: Adds private _clutter_actor_get_n_children
    
    This adds a private getter to query the number of children an actor has.
    One use planned for this API is to avoid calling get_paint_volume on
    such actors. (It's not clear what the best semantics for
    get_paint_volume are for actors with children, so we are considering
    leaving the semantics undefined for the initial clutter 1.4 release)

 clutter/clutter-actor.c   |    7 +++++++
 clutter/clutter-private.h |    1 +
 2 files changed, 8 insertions(+), 0 deletions(-)

commit 239d83f952aa077622ca79c390842be271baddcd
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Sep 12 23:31:39 2010 +0100

    actor: explicitly track children in clutter-actor.c
    
    We now explicitly track the list of children each actor has in a private
    GList. This gives us a reliable way to know how many children an actor
    has - even for composite actors that don't implement the container
    interface. This also will allow us to directly traverse the scenegraph
    in a more generalized fashion. Previously the scenegraph was
    more-or-less represented implicitly according the implementation of
    paint methods.

 clutter/clutter-actor.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

commit b3edd3e922e3a3a2dafc5a7a1c02bb22a5ffec94
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Sep 11 02:48:18 2010 +0100

    debug: fix blue outlines for paint-volumes debug opt
    
    When using the CLUTTER_PAINT=paint-volumes debug option we try and show
    when a paint volume couldn't be determined by drawing a blue outline of
    the allocation instead. There was a typo though and instead we were
    drawing an outline the size of the stage instead of for the given actor.
    This fixes that and removes a FIXME comment relating to the blue outline
    that is now implemented.

 clutter/clutter-actor.c |    5 +----
 1 files changed, 1 insertions(+), 4 deletions(-)

commit 1a8d577168ef48a9fcef21415b44b2b8c2f9a26c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Sep 11 02:39:23 2010 +0100

    clone: Implement get_paint_volume virtual
    
    To allow Clutter to queue clipped redraws when a clone actor changes we
    need to be able to report a paint volume for clone actors. This patch
    makes ClutterClones query the paint volume of their source actor and
    masquerade it as their own volume.

 clutter/clutter-clone.c |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)

commit f6ba69f82dba0fdb46998c93929f3c68ebf11cb1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Sep 10 02:18:16 2010 +0100

    Revert "actor: don't immediately queue redraw when queuing relayout"
    
    This reverts commit ca44c6a7d8abe9f2c548bee817559ea8adaa7a80.
    
    In reality there are probably lots of actors that depend on the exact
    semantics as they are documented so this change isn't really acceptable.
    For example when the font changes in ClutterText we only queue a
    relayout, and since it's possible that the font will have the same size
    and the actor won't get a new allocation it wouldn't otherwise queue a
    redraw.
    
    Since queue_redraw requests now get deferred until just before a paint
    run it is actually no longer a problem to queue the redraw here.

 clutter/clutter-actor.c |   20 --------------------
 1 files changed, 0 insertions(+), 20 deletions(-)

commit 3b789490d2cee54652d65950a71fe55736c6a433
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Sep 10 01:33:02 2010 +0100

    actor: defer queue-redraw signaling
    
    Instead of immediately, recursively emitting the "queue-redraw" signal
    when clutter_actor_queue_redraw is called we now defer this process
    until all stage updates are complete. This allows us to aggregate
    repeated _queue_redraw requests for the same actor avoiding redundant
    paint volume transformations. By deferring we also increase the
    likelihood that the actor will have a valid paint volume since it will
    have an up to date allocation; this in turn means we will more often be
    able to automatically queue clipped redraws which can have a big impact
    on performance.
    
    Here's an outline of the actor queue redraw mechanism:
    
    The process starts in clutter_actor_queue_redraw or
    _clutter_actor_queue_redraw_with_clip.
    
    These functions queue an entry in a list associated with the stage which
    is a list of actors that queued a redraw while updating the timelines,
    performing layouting and processing other mainloop sources before the
    next paint starts.
    
    We aim to minimize the processing done at this point because there is a
    good chance other events will happen while updating the scenegraph that
    would invalidate any expensive work we might otherwise try to do here.
    For example we don't try and resolve the screen space bounding box of an
    actor at this stage so as to minimize how much of the screen redraw
    because it's possible something else will happen which will force a full
    redraw anyway.
    
    When all updates are complete and we come to paint the stage (see
    _clutter_stage_do_update) then we iterate this list and actually emit
    the "queue-redraw" signals for each of the listed actors which will
    bubble up to the stage for each actor and at that point we will
    transform the actors paint volume into screen coordinates to determine
    the clip region for what needs to be redrawn in the next paint.
    
    Note: actors are allowed to queue a redraw in reseponse to a
    queue-redraw signal so we repeat the processing of the list until it
    remains empty. An example of when this happens is for Clone actors or
    clutter_texture_new_from_actor actors which need to queue a redraw if
    their source queues a redraw.

 clutter/clutter-actor.c   |  223 +++++++++++++++++++++++++++++++--------------
 clutter/clutter-private.h |   21 +++-
 clutter/clutter-stage.c   |  173 ++++++++++++++++++++++++++++++-----
 3 files changed, 320 insertions(+), 97 deletions(-)

commit 7d8effd5e26495dc3e01ba741a0389364183fc5f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Sep 9 18:51:17 2010 +0100

    paint_volume: add private api to change reference actor
    
    For Clone actors we will need a way to report the volume of the source
    actor as the volume of the clone actor. To make this work though we need
    to be able to replace the reference to the source actor with a reference
    to the clone actor instead. This adds a private
    _clutter_paint_volume_set_reference_actor function to do that.

 clutter/clutter-paint-volume.c |   15 +++++++++++++++
 clutter/clutter-private.h      |   38 ++++++++++++++++++++------------------
 2 files changed, 35 insertions(+), 18 deletions(-)

commit 2d895816be659a86d999748ecf631422b9e9176f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Sep 9 17:53:29 2010 +0100

    paint_volume: Adds _clutter_paint_volume_set_from_volume
    
    This adds a way to initialize a paint volume from another source paint
    volume. This lets us for instance pass the contents of one paint volume
    back through the out param of a get_paint_volume implementation.

 clutter/clutter-paint-volume.c |   12 ++++++++++++
 clutter/clutter-private.h      |    3 +++
 2 files changed, 15 insertions(+), 0 deletions(-)

commit bfacca30119ed51517bac39c362a927ef39291ec
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Sep 9 14:30:38 2010 +0100

    actor: don't queue_redraw actors not descended from stage
    
    This makes clutter_actor_queue_redraw simply bail out early if the actor
    isn't a descendant of a ClutterStage since the request isn't meaningful
    and it avoids a crash when trying to queue a clipped redraw against the
    stage to clear the actors old location.

 clutter/clutter-actor.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

commit b77d9a6d2c0cc02519c79efe9dd4c8c184f73b36
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 9 13:11:11 2010 +0100

    paint-volume: Add convenience function for using an allocation
    
    Classes overriding ClutterActor::get_paint_volume() that wish to use
    their allocation as the paint volume should have an idiomatic way of
    doing so.

 clutter/clutter-paint-volume.c |   37 +++++++++++++++++++++++++++++++++++++
 clutter/clutter-types.h        |   39 +++++++++++++++++++++------------------
 2 files changed, 58 insertions(+), 18 deletions(-)

commit 5640a65046e5fbf5b7283315b457e39331fa028b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 9 12:38:25 2010 +0100

    text: Update get_paint_volume() implementation
    
    In commit 9818eee4646e49e99beb5a43f1dafcbdcca41f94 I forgot to update
    ClutterText as well as the other actors.

 clutter/clutter-text.c |   24 ++++--------------------
 1 files changed, 4 insertions(+), 20 deletions(-)

commit 16f7ee13f2efb545d7cfd33774f42bab92f0e1e6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 9 12:30:29 2010 +0100

    Move default paint volume computation into a function
    
    This should reduce the amount of copy and paste for actor sub-classes
    that use the default paint volume from the allocation.

 clutter/clutter-cairo-texture.c |   24 +++-----------------
 clutter/clutter-paint-volume.c  |   46 +++++++++++++++++++++++++++++++++++++++
 clutter/clutter-private.h       |    4 +++
 clutter/clutter-rectangle.c     |   24 +++-----------------
 clutter/clutter-texture.c       |   24 +++-----------------
 5 files changed, 62 insertions(+), 60 deletions(-)

commit fd41024d29f093afe2fe1f0292c7ec5965ba5801
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 8 21:01:37 2010 +0100

    paint_volume: assert non-NULL pv in _volume_copy
    
    Instead of carefully checking if the user passes NULL to
    clutter_paint_volume_copy we now simply use g_return_val_if_fail.

 clutter/clutter-paint-volume.c |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

commit 3040b140bce59ac2e70de325e0afa98ec8fa7ce7
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 8 20:39:15 2010 +0100

    paint_volume: Splits out clutter_paint_volume code
    
    This splits out all the clutter_paint_volume code from clutter-actor.c
    into clutter-paint-volume.c. Since clutter-actor.c and
    clutter-paint-volume.c both needed the functionality of
    _fully_transform_vertices, this function has now been moved to
    clutter-utils.c as _clutter_util_fully_transform_vertices.

 clutter/Makefile.am            |    1 +
 clutter/clutter-actor.c        |  838 +---------------------------------------
 clutter/clutter-paint-volume.c |  817 +++++++++++++++++++++++++++++++++++++++
 clutter/clutter-private.h      |   14 +-
 clutter/clutter-util.c         |   45 +++
 5 files changed, 882 insertions(+), 833 deletions(-)

commit 72eeb8e809492524dc146cb92e0b4e3a5347f628
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 8 19:47:11 2010 +0100

    actor: make default get_paint_volume more conservative
    
    There are too many examples where the default assumption that an actor
    paints inside its allocation isn't true, so we now return FALSE in the
    base implementation instead. This means that by default we are saying
    "we don't know the paint volume of the actor", so developers need to
    implement the get_paint_volume virtual to take advantage of culling and
    clipped redraws with their actors.
    
    This patch provides very conservative get_paint_volume implementations
    for ClutterTexture, ClutterCairoTexture, ClutterRectangle and
    ClutterText which all explicitly check the actor's object type to avoid
    making any assumptions about subclasses.

 clutter/clutter-actor.c         |   14 +-------------
 clutter/clutter-cairo-texture.c |   28 ++++++++++++++++++++++++++++
 clutter/clutter-rectangle.c     |   28 +++++++++++++++++++++++++++-
 clutter/clutter-text.c          |   26 ++++++++++++++++++++++++++
 clutter/clutter-texture.c       |   34 ++++++++++++++++++++++++++++++----
 5 files changed, 112 insertions(+), 18 deletions(-)

commit d9a7f1b03b8527becd0251e51b8abacd710a1f8d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 8 18:20:54 2010 +0100

    actor: don't always check needs_allocation for clipped redraw
    
    We were always explicitly checking priv->needs_allocation in
    _clutter_actor_queue_redraw_with_clip, but we only need to do that if
    the CLUTTER_REDRAW_CLIPPED_TO_ALLOCATION flag is used.

 clutter/clutter-actor.c |   22 +++++++++++-----------
 1 files changed, 11 insertions(+), 11 deletions(-)

commit 072595a1bfe084e00e7bc6f7cc074c89a9914ce6
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 8 18:17:27 2010 +0100

    actor: new actors should start with an empty paint box
    
    This initializes priv->last_paint_box with a degenerate box, so a newly
    allocated actor added to the scenegraph and made visible only needs to
    trigger a redraw of its initial position. If we don't have a valid
    last_paint_box though we would instead trigger a full stage redraw.

 clutter/clutter-actor.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

commit c2ea35b5cab98a5c2eca305b5199c7d3b44be70c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 8 18:14:04 2010 +0100

    actor: when culling/clipped redraws disable ignore paint box
    
    To make comparing the performance with culling/clipped redraws
    enabled/disabled fairer we now avoid querying the paint box when they
    are disabled, so that results should reflect how the cost of
    transforming paint volumes into screen space etc gets offset against the
    benefit of culling.

 clutter/clutter-actor.c |   76 +++++++++++++++++++++++++++--------------------
 1 files changed, 44 insertions(+), 32 deletions(-)

commit 5d1600d6036941885a6ad2a4372f35678696d549
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 8 11:32:29 2010 +0100

    stage: only update viewport when allocation changes
    
    In clutter_stage_allocate at the end we were always querying the latest
    allocation set and using the geometry to assert the viewport and then
    kicking a full redraw. These only need to be done when the allocation
    really changes, so we now read the previous allocation at the start of
    the function and compare at the end. This was stopping clipped redraws
    from being used in a lot of cases.

 clutter/clutter-stage.c |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)

commit 1e7f22db3b7cdf9c8154ec7c3ae7cb9b83ac0655
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 8 01:18:30 2010 +0100

    glx: queue full redraws for the first 2 frames
    
    To consider that we've see a number of drivers that can struggle to get
    going and may produce a bad first frame we now force the first 2 frames
    to be full redraws. This became a serious issue after we started using
    clipped redraws more aggressively because we assumed that after the
    first frame the full framebuffer was valid and we only redraw the
    content that changes. With buggy drivers though, applications would be
    left with junk covering a lot of the stage until some event triggered a
    full redraw.

 clutter/glx/clutter-stage-glx.c |    5 +++++
 clutter/glx/clutter-stage-glx.h |    5 +++++
 2 files changed, 10 insertions(+), 0 deletions(-)

commit 771348b3696b9f9a0f7de41d9b71abee6309f07b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 8 01:15:00 2010 +0100

    x11: minimize nasty artefacts when resizing windows
    
    This is a workaround for a race condition when resizing windows while
    there are in-flight glXCopySubBuffer blits happening.
    
    The problem stems from the fact that rectangles for the blits are
    described relative to the bottom left of the window and because we can't
    guarantee control over the X window gravity used when resizing so the
    gravity is typically NorthWest not SouthWest.
    
    This means if you grow a window vertically the server will make sure to
    place the old contents of the window at the top-left/north-west of your
    new larger window, but that may happen asynchronous to GLX preparing to
    do a blit specified relative to the bottom-left/south-west of the window
    (based on the old smaller window geometry).
    
    When the GLX issued blit finally happens relative to the new bottom of
    your window, the destination will have shifted relative to the top-left
    where all the pixels you care about are so it will result in a nasty
    artefact making resizing look very ugly!
    
    We can't currently fix this completely, in-part because the window
    manager tends to trample any gravity we might set.  This workaround
    instead simply disables blits for a while if we are notified of any
    resizes happening so if the user is resizing a window via the window
    manager then they may see an artefact for one frame but then we will
    fallback to redrawing the full stage until the cooling off period is
    over.

 clutter/glx/clutter-stage-glx.c |    6 ++++-
 clutter/x11/clutter-event-x11.c |   47 +++++++++++++++++++++++++++++++++++++++
 clutter/x11/clutter-stage-x11.h |    2 +
 3 files changed, 54 insertions(+), 1 deletions(-)

commit 012e4ab153337cb973a623d6b03c274231ef68b5
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 8 01:03:15 2010 +0100

    x11: Queue clipped redraws for Expose events
    
    Instead of triggering a full stage redraw for Expose events we use the
    geometry of the exposed region given in the event to queue a clipped
    redraw of the stage.

 clutter/x11/clutter-event-x11.c |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)

commit 105451d1bea329edff85a5727f0bc4fd3b8e5504
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 23:35:26 2010 +0100

    cogl: removes unused _cogl_setup_viewport
    
    Clutter has now taken responsibility for managing its viewport,
    projection matrix and view transform as part of ClutterStage so
    _cogl_setup_viewport is no longer used by anything, and since it's quite
    an obscure API anyway it's we've taken the opportunity to remove the
    function.

 clutter/cogl/cogl/cogl.c |   74 ----------------------------------------------
 clutter/cogl/cogl/cogl.h |   26 ----------------
 2 files changed, 0 insertions(+), 100 deletions(-)

commit 95ff71d01c44b1d93fdecadb8f233cd05d051d9f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 23:25:18 2010 +0100

    stage: Sometimes really force a full redraw
    
    Since clutter_actor_queue_redraw now automatically clips redraws
    according to the paint volume of the actor we have to be careful to
    ensure we really force a full redraw when the stage is allocated a new
    size or the stage viewport changes.

 clutter/clutter-stage.c |   20 ++++++++++++++++++--
 1 files changed, 18 insertions(+), 2 deletions(-)

commit 2235e705859a880415da4d57c76596cef0b9026f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 23:09:06 2010 +0100

    actor: don't immediately queue redraw when queuing relayout
    
    We have bent the originally documented semantics a bit so now where we
    say "Queueing a new layout automatically queues a redraw as well" it
    might be clearer to say "Queuing a new layout implicitly queues a redraw
    as well if anything in the layout changes".
    
    This should be close enough to the original semantics to not cause any
    problems.
    
    Without this change then we we fail to take advantage of clipped redraws
    in a lot of cases because queuing a redraw with priv->needs_allocation
    == TRUE will automatically be promoted to a full stage redraw since it's
    not possible to determine a valid paint-volume.
    
    Also queuing a redraw here will end up registering a redundant clipped
    redraw for the current location, doing quite a lot of redundant
    transforms, and then later when re-allocated during layouting another
    queue redraw would happen with the correct paint-volume.

 clutter/clutter-actor.c |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

commit b499696d83c4f37b1513929ea62323abbaaa5940
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 22:21:28 2010 +0100

    Use paint volumes to do automatic culling
    
    This uses actor paint volumes to perform culling during
    clutter_actor_paint.
    
    When performing a clipped redraw (because only a few localized actors
    changed) then as we traverse the scenegraph painting the actors we can
    now ignore actors that don't intersect the clip region. Early testing
    shows this can have a big performance benefit; e.g. 100% fps improvement
    for test-state with culling enabled and we hope that there are even much
    more compelling examples than that in the real world,
    
    Most Clutter applications are 2Dish interfaces and have quite a lot of
    actors that get continuously painted when anything is animated. The
    dynamic actors are often localized to an area of user focus though so
    with culling we can completely avoid painting any of the static actors
    outside the current clip region.
    
    Obviously the cost of culling has to be offset against the cost of
    painting to determine if it's a win, but our (limited) testing suggests
    it should be a win for most applications.
    
    Note: we hope we will be able to also bring another performance bump
    from culling with another iteration - hopefully in the 1.6 cycle - to
    avoid doing the culling in screen space and instead do it in the stage's
    model space. This will hopefully let us minimize the cost of
    transforming the actor volumes for culling.

 clutter/clutter-actor.c                 |   53 ++++++++++++++++++++++++++++++-
 clutter/clutter-debug.h                 |    3 +-
 clutter/clutter-main.c                  |    3 +-
 clutter/clutter-private.h               |    6 +++-
 clutter/clutter-stage.c                 |   20 +++++++++++-
 clutter/egl/clutter-stage-egl.c         |    2 +-
 clutter/fruity/clutter-backend-fruity.c |    2 +-
 clutter/glx/clutter-stage-glx.c         |    4 +-
 clutter/osx/clutter-stage-osx.c         |    2 +-
 clutter/win32/clutter-backend-win32.c   |    2 +-
 10 files changed, 86 insertions(+), 11 deletions(-)

commit ef8be9e25ebe77fc63055191cc48af53d731c108
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 22:11:28 2010 +0100

    actor: Use paint volumes to always queue clipped redraws
    
    This makes clutter_actor_queue_redraw transparently use an actor's paint
    volume to queue a clipped redraw.
    
    We save the actors paint box each time it is painted so that when
    clutter_actor_queue_redraw is called we can determine the old and new
    location of the actor so we know the full bounds of what must be redrawn
    to clear its old view and show the new.

 clutter/clutter-actor.c |   75 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 0 deletions(-)

commit 13c4d7b95d4a9068322cf1d2b292d4bc98bbecfd
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 21:43:50 2010 +0100

    actor: make _transform_and_project_box static
    
    This makes _clutter_actor_transform_and_project_box a static function
    and removes the prototype from clutter-private.h since it is no longer
    used outside clutter-actor.c

 clutter/clutter-actor.c   |    2 +-
 clutter/clutter-private.h |    4 ----
 2 files changed, 1 insertions(+), 5 deletions(-)

commit 120d7595e3128a233c1fdffd762327b5b74a54d1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 21:47:01 2010 +0100

    actor: _real_queue_relayout shouldn't queue redraw
    
    The base implementation for the actor queue_relayout method was queuing
    an implicit redraw, but there shouldn't be anything implied from the
    mere process of queuing a redraw that should force us to queue a redraw.
    If actors are moved as a part of relayouting later then they will queue
    a redraw.  Also clutter_actor_queue_relayout() still also explicitly
    queues a redraw so I think this may have been doubly redundant.

 clutter/clutter-actor.c |    5 +----
 1 files changed, 1 insertions(+), 4 deletions(-)

commit dc976922714ab74f37c69a9ea109ad4e145fce92
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 21:56:33 2010 +0100

    actor: re-allocation implies need to redraw
    
    If clutter_actor_allocate finds it necessary to update an actors
    allocation then it now also queue a redraw of that actor. Currently we
    queue redraws for actors very early on when queuing a relayout instead
    of waiting to determine the final outcome of relayouting to determine if
    a redraw is really required. With this in place we can move away from
    preemptive queuing of redraws.

 clutter/clutter-actor.c |   18 +++++++++++++-----
 1 files changed, 13 insertions(+), 5 deletions(-)

commit 267e458a433b819f98ca47557c0a899d8c4dd357
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 20:29:01 2010 +0100

    actor: separate the queue redraw code
    
    clutter_actor_queue_relayout currently queues a relayout and a redraw,
    but the plan is to change it to only queue a relayout and honour the
    documentation by assuming that the process of relayouting will
    result queuing redraws for any actors whos allocation changes.
    
    This doesn't make that change it just adds an internal
    _clutter_actor_queue_only_relayout function which
    clutter_actor_queue_relayout now uses as well as calling
    clutter_actor_queue_redraw.

 clutter/clutter-actor.c |   38 ++++++++++++++++++++++++--------------
 1 files changed, 24 insertions(+), 14 deletions(-)

commit 6d5f6449ddeb47a9bb814f675843d12ae9f7882e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 20:08:00 2010 +0100

    stage: make it possible to queue a relayout only
    
    This adds a private ->relayout_pending boolean similar in spirit to
    redraw_pending. This will allow us to queue a relayout without
    implicitly queueing a redraw; instead we can depend on the actions
    of a relayout to queue any necessary redraw.

 clutter/clutter-main.c  |   44 -------------------------
 clutter/clutter-stage.c |   82 +++++++++++++++++++++++++++++++++++++++++-----
 2 files changed, 73 insertions(+), 53 deletions(-)

commit f8a6e36f1bd1989eaabca81db14dd8bad879fba7
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 19:40:28 2010 +0100

    texture: Forward queue redraw/relayout for fbos
    
    When clutter_texture_new_from_actor is use we need to track when the
    source actor queues a redraw or a relayout so we can also queue a redraw
    or relayout for the texture actor.

 clutter/clutter-texture.c |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)

commit 1ea7145efc46e246610a0db70cb71c57cdf55e2b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 19:31:27 2010 +0100

    Queue clipped redraws work in terms of paint volumes
    
    There is an internal _clutter_actor_queue_redraw_with_clip API that gets
    used for texture-from-pixmap to minimize what we redraw in response to
    Damage events. It was previously working in terms of a ClutterActorBox
    but it has now been changed so an actor can queue a redraw of volume
    instead.
    
    The plan is that clutter_actor_queue_redraw will start to transparently
    use _clutter_actor_queue_redraw_with_clip when it can determine a paint
    volume for the actor.

 clutter/clutter-actor.c                  |   78 ++++++++++++++++++++----------
 clutter/clutter-actor.h                  |   19 -------
 clutter/clutter-private.h                |   23 ++++++++-
 clutter/clutter-stage.c                  |   57 +++++++++++----------
 clutter/x11/clutter-x11-texture-pixmap.c |   20 +++++---
 5 files changed, 115 insertions(+), 82 deletions(-)

commit f3bffe5cab61efceaaadc5ba81129860b7b5c1a6
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 19:07:19 2010 +0100

    blur-effect: fix paint volume padding
    
    For the blur effect we use a BLUR_PADDING constant to pad out the volume
    of the source actor on the x and y axis. Previously we were offsetting
    the origin negatively using BLUR_PADDING and then adding BLUR_PADDING
    to the width and height, but we should have been adding 2*BLUR_PADDING
    instead.

 clutter/clutter-blur-effect.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit f60703cb1da1158c7d263210ca198203293b9576
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 23:07:52 2010 +0100

    debug: CLUTTER_DEBUG_REDRAWS: disable clipped redraws
    
    This ensures that clipped redraws are disabled when using
    CLUTTER_PAINT=redraws. This may seem unintuitive given that this option
    is for debugging clipped redraws, but we can't draw an outline outside
    the clip region and anything we draw inside the clip region is liable to
    leave a trailing mess on the screen since it won't be cleared up by
    later clipped redraws.

 clutter/clutter-main.c          |    7 +++
 clutter/glx/clutter-stage-glx.c |  105 ++++++++++++++++++++++----------------
 2 files changed, 68 insertions(+), 44 deletions(-)

commit 066220f983d4e27020c9b5340aa7d7bfaace9928
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 18:50:29 2010 +0100

    paint volumes: CLUTTER_PAINT=paint-volumes debug option
    
    This adds a debug option to visualize the paint volumes of all actors.
    When CLUTTER_PAINT=paint-volumes is exported in the environment before
    running a Clutter application then all actors will have their bounding
    volume drawn in green with a label corresponding to the actors type.

 clutter/clutter-actor.c |   96 +++++++++++++++++++++++++++++++++++++++++++++++
 clutter/clutter-debug.h |    3 +-
 clutter/clutter-main.c  |    7 +++-
 3 files changed, 104 insertions(+), 2 deletions(-)

commit 3540d222e1ebba80bbe6cdfe32e97af052304d77
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 18:04:19 2010 +0100

    paint volumes: another pass at the design
    
    This is a fairly extensive second pass at exposing paint volumes for
    actors.
    
    The API has changed to allow clutter_actor_get_paint_volume to fail
    since there are times - such as when an actor isn't a descendent of the
    stage - when the volume can't be determined. Another example is when
    something has connected to the "paint" signal of the actor and we simply
    have no way of knowing what might be drawn in that handler.
    
    The API has also be changed to return a const ClutterPaintVolume pointer
    (transfer none) so we can avoid having to dynamically allocate the
    volumes in the most common/performance critical code paths. Profiling was
    showing the slice allocation of volumes taking about 1% of an apps time,
    for some fairly basic tests. Most volumes can now simply be allocated on
    the stack; for clutter_actor_get_paint_volume we return a pointer to
    &priv->paint_volume and if we need a more dynamic allocation there is
    now a _clutter_stage_paint_volume_stack_allocate() mechanism which lets
    us allocate data which expires at the start of the next frame.
    
    The API has been extended to make it easier to implement
    get_paint_volume for containers by using
    clutter_actor_get_transformed_paint_volume and
    clutter_paint_volume_union. The first allows you to query the paint
    volume of a child but transformed into parent actor coordinates. The
    second lets you combine volumes together so you can union all the
    volumes for a container's children and report that as the container's
    own volume.
    
    The representation of paint volumes has been updated to consider that
    2D actors are the most common.
    
    The effect apis, clutter-texture and clutter-group have been update
    accordingly.

 clutter/clutter-actor.c                 |  920 ++++++++++++++++++++++++++-----
 clutter/clutter-actor.h                 |   10 +-
 clutter/clutter-blur-effect.c           |    4 +-
 clutter/clutter-effect.c                |   11 +-
 clutter/clutter-effect.h                |    2 +-
 clutter/clutter-group.c                 |   25 +
 clutter/clutter-main.c                  |    2 +-
 clutter/clutter-offscreen-effect.c      |   94 +---
 clutter/clutter-private.h               |   94 +++-
 clutter/clutter-stage.c                 |   47 ++
 clutter/clutter-texture.c               |  109 +++-
 clutter/clutter-types.h                 |   18 +
 clutter/egl/clutter-stage-egl.c         |    2 +-
 clutter/fruity/clutter-backend-fruity.c |    2 +-
 clutter/glx/clutter-stage-glx.c         |    4 +-
 clutter/osx/clutter-stage-osx.c         |    2 +-
 clutter/win32/clutter-backend-win32.c   |    2 +-
 17 files changed, 1089 insertions(+), 259 deletions(-)

commit 48a24a2e08d5978e538e31c8480fa3d7b9b0b291
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Aug 19 15:38:15 2010 +0100

    actor-box: Adds clutter_actor_box_union utility
    
    When using ClutterActorBoxs for representing clip regions it can be
    convenient to be able to union multiple boxes together.

 clutter/clutter-actor.c |   28 ++++++++++++++++++++++++++++
 clutter/clutter-types.h |    3 +++
 2 files changed, 31 insertions(+), 0 deletions(-)

commit 2da127dcff2c272e4d3b4ed5fc06919700fbc036
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Aug 19 15:26:19 2010 +0100

    texture: size fbos using clutter_actor_get_paint_box
    
    Previously we used the transformed allocation but that doesn't take
    into account actors with depth which may be projected outside the
    area covered by the transformed allocation.

 clutter/clutter-texture.c |   48 ++++++++++++++------------------------------
 1 files changed, 15 insertions(+), 33 deletions(-)

commit 044809edb89a736f2aa5ecba54972cdea6d724c4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Aug 19 15:27:51 2010 +0100

    docs: Add PaintVolume to the API reference
    
    And document the various related functions.

 clutter/clutter-actor.c                    |  166 ++++++++++++++++++++++++++++
 doc/reference/clutter/clutter-sections.txt |   16 +++
 2 files changed, 182 insertions(+), 0 deletions(-)

commit a6e5ecebe3c7e593257a5c3d4dc052561d4147f9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Aug 19 14:06:52 2010 +0100

    blur-effect: Add padding to account for the blur
    
    The blur effect will sample pixels on the edges of the offscreen buffer,
    so we want to add a padding to avoid clamping the blur.
    
    We do this by creating a larger target texture, and updating the paint
    volume of the actor during paint to take that padding into account.

 clutter/clutter-blur-effect.c |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

commit 5d97ca5f87a621b33129a675b5a4342c2b7a1dc7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Aug 19 14:05:45 2010 +0100

    offscreen-effect: Use the paint box to size the FBO
    
    We should be using the real, on-screen, transformed size of the actor to
    size and position the offscreen buffer we use to paint the actor for an
    effect.

 clutter/clutter-offscreen-effect.c |   45 +++++++++++++++--------------------
 1 files changed, 19 insertions(+), 26 deletions(-)

commit 25abdf09b76fb594f8e64295a93aad241bcc3941
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Aug 16 17:02:15 2010 +0100

    effect: Allow any effect to override the paint volume
    
    An Effect implementation might override the paint volume of the actor to
    which it is applied to. The get_paint_volume() virtual function should
    be added to the Effect class vtable so that any effect can get the
    current paint volume and update it.
    
    The clutter_actor_get_paint_volume() function becomes context aware, and
    does the right thing if called from within a ClutterEffect pre_paint()
    or post_paint() implementation, by allowing all effects in the chain up
    to the caller to modify the paint volume.

 clutter/clutter-actor.c   |   54 +++++++++++++++++++++++++++++++++++++++++++-
 clutter/clutter-effect.c  |   17 ++++++++++++++
 clutter/clutter-effect.h  |    9 +++++-
 clutter/clutter-private.h |    6 +++-
 4 files changed, 80 insertions(+), 6 deletions(-)

commit 94ce747f83b09c93351a06db233742f3b9255380
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Aug 16 15:53:28 2010 +0100

    actor: Allow querying the paint volume
    
    An actor has an implicit "paint volume", that is the volume in 3D space
    occupied when painting itself.
    
    The paint volume is defined as a cuboid with the origin placed at the
    top-left corner of the actor; the size of the cuboid is given by three
    vectors: width, height and depth.
    
    ClutterActor provides API to convert the paint volume into a 2D box in
    screen coordinates, to compute the on-screen area that an actor will
    occupy when painted.
    
    Actors can override the default implementation of the get_paint_volume()
    virtual function to provide a different volume.

 clutter/clutter-actor.c   |  269 +++++++++++++++++++++++++++++++++++++++++++++
 clutter/clutter-actor.h   |    8 +-
 clutter/clutter-private.h |    4 +
 clutter/clutter-types.h   |   29 ++++-
 4 files changed, 305 insertions(+), 5 deletions(-)

commit 8dd8fbdbdf940258ff6b5ce616534bf8f8fd356a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Sep 13 11:30:30 2010 +0100

    build: Start moving to a non-recursive layout
    
            *** WARNING: THIS COMMIT CHANGES THE BUILD ***
    
    Do not recurse into the backend directories to build private, internal
    libraries.
    
    We only recurse from clutter/ into the cogl sub-directory; from there,
    we don't recurse any further. All the backend-specific code in Cogl and
    Clutter is compiled conditionally depending on the macros defined by the
    configure script.
    
    We still recurse from the top-level directory into doc, clutter and
    tests, because gtk-doc and tests do not deal nicely with non-recursive
    layouts.
    
    This change makes Clutter compile slightly faster, and cleans up the
    build system, especially when dealing with introspection data.
    
    Ideally, we also want to make Cogl part of the top-level build, so that
    we can finally drop the sed trick to change the shared library from the
    GIR before compiling it.
    
    Currently disabled:
    
      ‣ OSX backend
      ‣ Fruity backend
    
    Currently enabled but untested:
    
      ‣ EGL backend
      ‣ Windows backend

 .gitignore                                         |    7 +-
 Makefile.am                                        |   19 +-
 autogen.sh                                         |    1 -
 build/Makefile.am                                  |    2 +-
 build/stringify.sh                                 |   94 ++++
 clutter.pc.in                                      |   21 -
 clutter/Makefile.am                                |  521 ++++++++++++++------
 clutter/cally/Makefile.am                          |   80 ---
 clutter/cally/cally.pc.in                          |    9 +-
 clutter/clutter.pc.in                              |   21 +
 clutter/cogl/cogl/Makefile.am                      |  136 ++++--
 clutter/cogl/cogl/cogl-context.h                   |   10 +-
 clutter/cogl/cogl/cogl-material-arbfp.c            |    9 +-
 clutter/cogl/cogl/cogl-material-fixed.c            |    9 +-
 clutter/cogl/cogl/cogl-material-glsl.c             |    8 +-
 clutter/cogl/cogl/cogl-material-opengl.c           |    9 +-
 clutter/cogl/cogl/driver/gl/Makefile.am            |   34 --
 .../cogl/cogl/driver/gl/cogl-context-driver-gl.c   |   39 ++
 .../cogl/cogl/driver/gl/cogl-context-driver-gl.h   |   53 ++
 clutter/cogl/cogl/driver/gl/cogl-context-driver.c  |   39 --
 clutter/cogl/cogl/driver/gl/cogl-context-driver.h  |   53 --
 .../cogl/driver/gl/cogl-feature-functions-gl.h     |  410 +++++++++++++++
 .../cogl/cogl/driver/gl/cogl-feature-functions.h   |  410 ---------------
 clutter/cogl/cogl/driver/gl/cogl-gl.c              |  237 +++++++++
 clutter/cogl/cogl/driver/gl/cogl-program-gl.c      |  488 ++++++++++++++++++
 clutter/cogl/cogl/driver/gl/cogl-program-gl.h      |   46 ++
 clutter/cogl/cogl/driver/gl/cogl-program.c         |  488 ------------------
 clutter/cogl/cogl/driver/gl/cogl-program.h         |   46 --
 .../cogl/cogl/driver/gl/cogl-texture-driver-gl.c   |  522 ++++++++++++++++++++
 clutter/cogl/cogl/driver/gl/cogl-texture-driver.c  |  522 --------------------
 clutter/cogl/cogl/driver/gl/cogl.c                 |  237 ---------
 clutter/cogl/cogl/driver/gles/Makefile.am          |   57 ---
 .../cogl/driver/gles/cogl-context-driver-gles.c    |   46 ++
 .../cogl/driver/gles/cogl-context-driver-gles.h    |   56 +++
 .../cogl/cogl/driver/gles/cogl-context-driver.c    |   46 --
 .../cogl/cogl/driver/gles/cogl-context-driver.h    |   56 ---
 .../cogl/driver/gles/cogl-feature-functions-gles.h |  111 +++++
 .../cogl/cogl/driver/gles/cogl-feature-functions.h |  111 -----
 clutter/cogl/cogl/driver/gles/cogl-gles.c          |  117 +++++
 clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c |    1 -
 clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h |    2 +-
 clutter/cogl/cogl/driver/gles/cogl-program-gles.c  |  437 ++++++++++++++++
 clutter/cogl/cogl/driver/gles/cogl-program-gles.h  |   52 ++
 clutter/cogl/cogl/driver/gles/cogl-program.c       |  437 ----------------
 clutter/cogl/cogl/driver/gles/cogl-program.h       |   52 --
 .../cogl/driver/gles/cogl-texture-driver-gles.c    |  504 +++++++++++++++++++
 .../cogl/cogl/driver/gles/cogl-texture-driver.c    |  504 -------------------
 clutter/cogl/cogl/driver/gles/cogl.c               |  117 -----
 clutter/cogl/cogl/driver/gles/stringify.sh         |   94 ----
 clutter/egl/Makefile.am                            |   46 --
 clutter/glx/Makefile.am                            |   36 --
 clutter/json/Makefile.am                           |   39 --
 clutter/win32/Makefile.am                          |   38 --
 clutter/win32/clutter-win32.pc.in                  |   16 -
 clutter/x11/Makefile.am                            |   74 ---
 clutter/x11/clutter-backend-x11.c                  |   16 +-
 clutter/x11/clutter-x11-enum-types.c.in            |   31 --
 clutter/x11/clutter-x11-enum-types.h.in            |   26 -
 clutter/x11/clutter-x11.h                          |    1 -
 clutter/x11/clutter-x11.pc.in                      |   16 -
 configure.ac                                       |  102 ++--
 61 files changed, 3798 insertions(+), 4023 deletions(-)

commit 27aebb5c9d4a39e3f8e252b40cbf664d9981bbeb
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 29 14:10:38 2010 +0100

    cally: Do not use deprecated functions
    
    The function g_strcasecmp() has been deprecated since GLib 2.2.

 clutter/cally/cally-actor.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

commit e798047ca043fea204851ab22faf67a3222fa6d0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 29 11:44:46 2010 +0100

    animator: Code style fixes

 clutter/clutter-animator.c |   30 +++++++++++++++---------------
 1 files changed, 15 insertions(+), 15 deletions(-)

commit 3fe10e0bb1a7d6d9ad1f28ab50d609d2a0af55fb
Author: Stephen Kennedy <sk4425@googlemail.com>
Date:   Wed Sep 29 10:56:48 2010 +0100

    ClutterAnimator doesn't ref timeline properly
    
    ClutterAnimator currently has a number of bugs related to its
    referencing of its internal timeline.
    
    1) The default timeline created in _init is not unreffed (it appears the
    programmer has wrongly thought ClutterTimeline has a floating reference
    based on the use of g_object_ref_sink in _set_timeline)
    
    2) The timeline and slave_timeline vars are unreffed in finalize instead
    of dispose
    
    3) The signal handlers set up in _set_timeline are not disconnected when
    the animator is disposed
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2347
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 clutter/clutter-animator.c |   23 ++++++++++++++++++-----
 1 files changed, 18 insertions(+), 5 deletions(-)

commit d0cab85673a885b9aba317d282dd1bd5518fa241
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Sep 27 22:17:12 2010 +0100

    Add a conformance test for clutter_actor_contains
    
    This adds a conformance test for clutter_actor_contains to assert that
    it gets the expected results for the given tree of actors.

 tests/conform/test-actor-invariants.c |   66 +++++++++++++++++++++++++++++++++
 tests/conform/test-conform-main.c     |    1 +
 2 files changed, 67 insertions(+), 0 deletions(-)

commit 306852075256906d268d5e0cb49957963f2e6a87
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Sep 27 17:51:01 2010 +0100

    Simplify the loop for clutter_actor_contains
    
    This reorganizes the loop for clutter_actor_contains so that it is a
    for loop rather than a while loop. Although this is mostly just
    nitpicking, I think this change could make the loop slightly faster if
    not optimized because it doesn't perform the self == descendant check
    twice and it is clearer.

 clutter/clutter-actor.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

commit 99adb88e9b2cddd65b4fd960444f26a5b52ce3c1
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Sep 27 17:47:38 2010 +0100

    Document what happens when self==descendant in clutter_actor_contains
    
    The documentation for clutter_actor_contains didn't specify what
    happens when self==descendant. A strict reading of it might lead you
    to think that it would return FALSE because in that case the
    descendant isn't an immediate child or a deeper descendant. The code
    actually would return TRUE. I think this is more useful so this patch
    fixes the docs rather than the code.

 clutter/clutter-actor.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit bba1424a444816f61865c5caffb17e56e0eb478b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Sep 27 16:46:26 2010 +0100

    Post-branch version bump to 1.5.1

 configure.ac |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 1971581dfa4c4ec1c37ed85f4087800fb28a2e20
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Sep 26 18:48:04 2010 +0100

    doap: Remove mallum from the maintainers list

 clutter.doap |    7 -------
 1 files changed, 0 insertions(+), 7 deletions(-)

commit 43e85836b48636fe1a5217cb5fce6517e07ed3d0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Sep 26 16:52:58 2010 +0100

    actor: Dispose all constrains
    
    We are leaking the ClutterMetaGroup with all the constraints when
    disposing an Actor.

 clutter/clutter-actor.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

commit fda1f3a8ba053aaa98882788b6098acbf7875bd3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Sep 25 20:23:41 2010 +0100

    json: Allow NULL as a value for strings, arrays and objects
    
    We should not warn when asking for a string, array or object if the
    contents were 'null'.
    
    Patch from JSON-GLib.

 clutter/json/json-array.c  |   42 ++++++++++++++++++++++++++++++++--------
 clutter/json/json-object.c |   45 +++++++++++++++++++++++++++++++++++--------
 2 files changed, 69 insertions(+), 18 deletions(-)

commit 8fe9f3a37db72dcb1dfdf0589135310a78b0174e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Sep 24 16:21:06 2010 +0100

    test-clutter-units: Force a known resolution to avoid fuzzyness
    
    Instead of taking the current resolution, whatever it may be, use a
    known DPI. This should alleviate fuzzyness and create consistent
    results.

 tests/conform/test-clutter-units.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

commit 51a4af92628287b491cd2539ce7bda0811976527
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Sep 24 15:25:15 2010 +0100

    Post-release version bump to 1.4.1

 configure.ac |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

