commit 1854ce2d06d6c0badab174aa6c38dd6a46963284 Author: Emmanuele Bassi Date: Tue Jan 17 14:32:19 2012 +0000 Release Clutter 1.9.4 (snapshot) configure.ac | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 696f9e84c938808c645e66e3d2dd2a78ceafc154 Author: Emmanuele Bassi Date: Tue Jan 17 14:21:02 2012 +0000 text: Fix the buffer length check on paint clutter/clutter-text.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 9f0ba2da0fece26167b3b2a44f3eb00ef1202702 Author: Emmanuele Bassi Date: Tue Jan 17 14:17:20 2012 +0000 script: Fix a segfault Accessing a variable before it is being set is not a great plan. clutter/clutter-script-parser.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) commit 37d94c6b870f79f0d3cce4a9dace36633cac9319 Author: Emmanuele Bassi Date: Tue Jan 17 12:23:28 2012 +0000 text-buffer: Fix the Since annotations clutter/clutter-text-buffer.c | 82 ++++++++++++++++++++++------------------- 1 files changed, 44 insertions(+), 38 deletions(-) commit b03aa254692a47f60464d04e67f5a45ec842ede7 Author: Emmanuele Bassi Date: Tue Jan 17 12:19:35 2012 +0000 Update the NEWS file NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 74 insertions(+), 0 deletions(-) commit 5085c11bdec3ca772cff428833926a38efb5bf93 Author: Emmanuele Bassi Date: Tue Jan 17 12:00:54 2012 +0000 Add ClutterTextBuffer to the API reference clutter/clutter.symbols | 3 ++ doc/reference/clutter/clutter-docs.xml.in | 1 + doc/reference/clutter/clutter-sections.txt | 32 ++++++++++++++++++++++++++++ doc/reference/clutter/clutter.types | 1 + 4 files changed, 37 insertions(+), 0 deletions(-) commit 57f5813058137aa8f0f13547b8e64f539d1a6870 Author: Emmanuele Bassi Date: Tue Jan 17 11:56:23 2012 +0000 Update clutter.symbols for TextBuffer clutter/clutter.symbols | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-) commit 40b023a33eb154b7ef0288181920fd1527cf6044 Author: Emmanuele Bassi Date: Tue Jan 17 11:52:37 2012 +0000 interactive/text: Remove spurious g_object_unref() tests/interactive/test-text.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-) commit c073764369ee5969aa40ab90bcbbd1d9ffb22518 Author: Stef Walter Date: Wed Jun 15 10:06:31 2011 +0100 text: Implement ClutterTextBuffer * Abstracts the buffer for text in ClutterText * Allows implementation of undo/redo. * Allows use of non-pageable memory for text in the case of sensitive passwords. * Implement a test with two ClutterText using the same buffer. https://bugzilla.gnome.org/show_bug.cgi?id=652653 clutter/Makefile.am | 6 +- clutter/clutter-marshal.list | 2 + clutter/clutter-text-buffer.c | 764 +++++++++++++++++++++++++++++++++++++++++ clutter/clutter-text-buffer.h | 139 ++++++++ clutter/clutter-text.c | 693 ++++++++++++++++++++----------------- clutter/clutter-text.h | 6 +- tests/interactive/test-text.c | 24 ++- 7 files changed, 1304 insertions(+), 330 deletions(-) commit d95bdf3a07ac82591886eb8f5bc4fab9fc98e62f Author: Daniel Mustieles Date: Tue Jan 17 12:52:01 2012 +0100 Updated Spanish translation po/es.po | 766 ++++++++++++++++++++++++++++++++++---------------------------- 1 files changed, 415 insertions(+), 351 deletions(-) commit 6b5b2910290dfe4afe494b8660bb65c4dba331bb Author: Emmanuele Bassi Date: Tue Jan 17 11:49:05 2012 +0000 Update clutter.symbols clutter/clutter.symbols | 106 ++++++++++++++++------------------------------- 1 files changed, 36 insertions(+), 70 deletions(-) commit 89e4bc3dcda824d687006e151e57effeaa3efd1c Author: Fran Diéguez Date: Tue Jan 17 01:44:53 2012 +0100 Updated Galician translations po/gl.po | 537 +++++++++++++++++++++++++++++++++++--------------------------- 1 files changed, 300 insertions(+), 237 deletions(-) commit 2d6ad03e863d0d0990d1b234a9e57de31a8669e3 Author: Piotr Drąg Date: Tue Jan 17 01:29:26 2012 +0100 Updated POTFILES.in po/POTFILES.in | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 1dfc503df1085e197f291bc92a3af5495ec7f11d Author: Emmanuele Bassi Date: Mon Jan 16 23:49:49 2012 +0000 Fix compiler warnings When dereferencing GArray.data to a C structure you need a double cast from guint8* to void*, and then from void* to the actual type. This avoids compiler warnings, especially when using clang on OSX. clutter/clutter-script-parser.c | 3 ++- clutter/clutter-state.c | 31 ++++++++++++++++--------------- clutter/clutter-table-layout.c | 14 +++++++------- clutter/clutter-timeline.c | 2 +- 4 files changed, 26 insertions(+), 24 deletions(-) commit eb489a40debd05735f9eed6f54ac4cae19e8be6e Author: Emmanuele Bassi Date: Tue Jan 3 14:51:37 2012 +0000 docs: Move deprecated sections to the proper location doc/reference/clutter/clutter-docs.xml.in | 18 +++++++++--------- 1 files changed, 9 insertions(+), 9 deletions(-) commit f41061b8dfbe972bbd58d802b4191cdf86a3c4b4 Author: Emmanuele Bassi Date: Tue Jan 3 14:36:32 2012 +0000 actor: Deprecated push/pop internal methods The concept of "internal child" only meant anything when we had a separate API for containers and actors. Now that we plugged that particular hole, we can drop all the hacks we used to have in place to work around its design limitations. clutter/clutter-actor.c | 12 +++++++++++- clutter/clutter-actor.h | 3 --- clutter/deprecated/clutter-actor.h | 6 ++++++ 3 files changed, 17 insertions(+), 4 deletions(-) commit ad2cfc01506ad08e91469bf269fcd50a0f337cfe Author: Emmanuele Bassi Date: Tue Jan 3 14:31:06 2012 +0000 docs: Fixes for the API reference clutter/clutter-actor.c | 16 +++++++++++++++- doc/reference/clutter/clutter-sections.txt | 22 ++++++++++------------ 2 files changed, 25 insertions(+), 13 deletions(-) commit ea6ddd15349da9d5088800905e54efbd1b955a15 Author: Emmanuele Bassi Date: Tue Jan 3 14:29:39 2012 +0000 actor: Add boxed margin accessors It can be convenient to be able to set, or get, all the components of an actor's margin at the same time; since we already have a boxed type for storing a margin, an accessors pair based on it is not a complicated addition to the API. clutter/clutter-actor.c | 84 +++++++++++++++++++++++++++++++++++++++++++++++ clutter/clutter-actor.h | 4 ++ 2 files changed, 88 insertions(+), 0 deletions(-) commit 8de4b85175712785b754c339c5c49060e92616d2 Author: Emmanuele Bassi Date: Wed Dec 28 18:37:16 2011 +0000 docs: Update the release notes README.in | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-) commit 25ca2f135cca1b88f09ecaf6f5ca0fa6a555b350 Author: Emmanuele Bassi Date: Wed Dec 28 18:32:00 2011 +0000 build: Add inclusion guards and license notices clutter/deprecated/clutter-actor.h | 28 ++++++++++++++++++++++++++++ clutter/deprecated/clutter-backend.h | 28 ++++++++++++++++++++++++++++ clutter/deprecated/clutter-container.h | 7 +++++-- clutter/deprecated/clutter-group.h | 27 ++++++++++++++++++++++++++- clutter/deprecated/clutter-main.h | 25 +++++++++++++++++++++++++ clutter/deprecated/clutter-stage.h | 25 +++++++++++++++++++++++++ 6 files changed, 137 insertions(+), 3 deletions(-) commit 6f4578838ca89aa42cf7ac80c908c4c3868d4dd2 Author: Emmanuele Bassi Date: Tue Dec 27 19:28:47 2011 +0000 actor: Use proper internal API Inside the set_child_[above|below]_sibling() and set_child_at_index() we should be using the internal API for mutating the children list, instead of the delegate functions. This ensures that we go through a single, well-defined code path for all operations on the list of children of an actor. clutter/clutter-actor.c | 187 ++++++++++++++++++++++++++++------------------- 1 files changed, 113 insertions(+), 74 deletions(-) commit b835e1f8c4101c668589c2c760e251853c20474a Author: Emmanuele Bassi Date: Tue Dec 27 18:57:32 2011 +0000 Deprecate the old raise/lower API We have a replacement in ClutterActor, now. The old ClutterContainer API needs to be deprecated, and the raise() and lower() virtual functions need a default implementation, so we can check for implementations overriding them, by using the diagnostic mode like we do for add(), remove(), and foreach(). The sort_depth_order() virtual function just doesn't do anything, as it should have been made ages ago. The Actor wrappers for the Container methods also need to be deprecated. clutter/clutter-actor.c | 51 ++++---------- clutter/clutter-actor.h | 7 -- clutter/clutter-container.c | 111 +++++++++++++++++++++++++------- clutter/clutter-container.h | 20 ++---- clutter/deprecated/clutter-actor.h | 14 ++++ clutter/deprecated/clutter-container.h | 47 +++++++++----- 6 files changed, 154 insertions(+), 96 deletions(-) commit 9a66392d49f7403ac35d31edd96b580e4921600b Author: Emmanuele Bassi Date: Tue Dec 27 18:22:05 2011 +0000 actor: Add new methods for changing the paint sequence ClutterActor provides four methods for changing the paint sequence order of its children: raise_top() raise() lower() lower_bottom() The first and last one being just wrappers around raise() and lower(), respectively. These methods have various issues: they omit the parent, preferring to retrieve it from the actor passed as the first argument; this does not match the new style of API introduced to operate on the list of children of an actor. Additionally, the raise() and lower() methods of ClutterActor call into the Container interface, and are not really aptly named (raise() in particular collides with the completely unrelated 'raise' keyword in Python, and usually needs to be wrapped in order to be used at all). Furthermore, we need public methods that Container can call from its default implementation, as well as methods to port current Container implementations. Finally, since we have insert_child_at_index(), we should also have an equivalent set_child_at_index() as well. clutter/clutter-actor.c | 102 ++++++++++++++++++++++++++++++++++++++ clutter/clutter-actor.h | 10 ++++ tests/conform/test-actor-graph.c | 10 ++-- 3 files changed, 118 insertions(+), 4 deletions(-) commit fa1792c3949c551763c812188429db447566d1ef Author: Emmanuele Bassi Date: Tue Dec 27 11:28:36 2011 +0000 actor: Use flags to control add/remove child The internal versions of add_child() and remove_child() currently use boolean arguments to control things like the ChildMeta instances and the emissions of signals; using more than one boolean argument is an indication that you need flags to avoid readability issues, as well as providing a way to add new behaviours without a combinatorial explosion of arguments, later on. clutter/clutter-actor.c | 124 ++++++++++++++++++++++++++++++----------------- 1 files changed, 80 insertions(+), 44 deletions(-) commit 72fa75c034ad0a3d94f4966e6644626e85b5b0e7 Author: Emmanuele Bassi Date: Wed Dec 21 17:07:25 2011 +0000 actor: Remove automagic "expand" flag I don't feel comfortable with this feature, and its implementation still has too many rough edges. We can safely punt it for now, and introduce it at a later point, as it doesn't block existing features or API. clutter/clutter-actor.c | 471 +------------------------------------- clutter/clutter-actor.h | 10 - clutter/clutter-box-layout.c | 57 +----- clutter/clutter-layout-manager.c | 16 -- clutter/clutter-layout-manager.h | 10 +- clutter/clutter-table-layout.c | 42 +--- 6 files changed, 14 insertions(+), 592 deletions(-) commit 72b523c9e9b9d5f7688090e181bd80e4ab94b83e Author: Emmanuele Bassi Date: Tue Dec 20 18:42:53 2011 +0000 table-layout: Override compute_expand() The TableLayout has two expansion flags that need to be taken into consideration when computing the Actor expansion flags. clutter/clutter-table-layout.c | 56 ++++++++++++++++++++++++++++++++++----- 1 files changed, 48 insertions(+), 8 deletions(-) commit 5f79f6ee3715dad19d0b471bbea91a5363e29cf9 Author: Emmanuele Bassi Date: Tue Dec 20 18:41:51 2011 +0000 box-layout: Override compute_expand() ClutterBoxLayout has an expansion flag, and we need to take that into consideration when computing the Actor expansion flags. clutter/clutter-box-layout.c | 57 ++++++++++++++++++++++++++++++++++++++++- 1 files changed, 55 insertions(+), 2 deletions(-) commit 508f09f0a0c326b9a04cf021d134611e75690dd5 Author: Emmanuele Bassi Date: Tue Dec 20 18:40:11 2011 +0000 actor: Ask the LayoutManager to compute the expansion flags If an actor has a layout manager, we want to involve the delegate object into the lazy computation of the expansion flags state. clutter/clutter-actor.c | 35 +++++++++++++++++++++++++++++++++++ 1 files changed, 35 insertions(+), 0 deletions(-) commit 29561165611b6c76315664271cc130bf37cf5c1e Author: Emmanuele Bassi Date: Tue Dec 20 18:38:47 2011 +0000 layout-manager: Add compute_expand() vfunc This virtual function will let layout managers with legacy expansion flags be able to influence the lazy computation of the expansion flags on ClutterActor. clutter/clutter-layout-manager.c | 16 ++++++++++++++++ clutter/clutter-layout-manager.h | 12 +++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) commit fd5e422b9fc58bec4cd98d626226b0ae03766e98 Author: Emmanuele Bassi Date: Tue Dec 20 17:05:48 2011 +0000 actor: Paint the background color in the paint class handler We need to paint the background color in the default class handler for two reasons: it's logically appropriate, and we don't want actor subclasses overriding the ::paint class handler to change behaviour only because somebody decided to set the background color. clutter/clutter-actor.c | 38 +++++++++++++++++++------------------- 1 files changed, 19 insertions(+), 19 deletions(-) commit 2aaf359272aa3b7a38e472bed10aff69caa7303b Author: Emmanuele Bassi Date: Tue Dec 20 15:59:15 2011 +0000 docs: Update the release notes README.in | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-) commit e6082fe42f9fbee6b3e01ca86118fab455cca4b0 Author: Emmanuele Bassi Date: Tue Dec 20 15:49:20 2011 +0000 docs: Clean up ClutterContainer's description The API to add/remove/iterate over children is in ClutterActor, now. clutter/clutter-container.c | 11 +++-------- 1 files changed, 3 insertions(+), 8 deletions(-) commit 7f092af15b46daba025d41646bb18c5d7ebb4d03 Author: Emmanuele Bassi Date: Tue Dec 20 15:21:06 2011 +0000 container: Add diagnostic warnings for deprecated vfuncs The old add(), remove(), and foreach() virtual functions are deprecated; ClutterContainer should warn if the public API detects that the vfuncs have been overridden. Strictly speaking, it's still legal to override those vfuncs: you can chain up to the default vtable, or you could just provide an equivalent implementation. The goal is to avoid having to override the Container interface, until we can safely deprecate it and remove it in Clutter 2.0. clutter/clutter-container.c | 51 ++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 48 insertions(+), 3 deletions(-) commit 477c60c185fd666bf9ce207915cbffca4e8aaa02 Author: Emmanuele Bassi Date: Tue Dec 20 15:04:24 2011 +0000 container: Provide default implementation of vfuncs Instead of making ClutterActor implement the basic add/remove/foreach virtual functions of ClutterContainer, we can simply do that from within the ClutterContainer implementation. clutter/clutter-actor.c | 49 ----------------------- clutter/clutter-container.c | 92 +++++++++++++++++++++++++++--------------- 2 files changed, 59 insertions(+), 82 deletions(-) commit 959f875cbcfd5c5b11818b589aeb6a284d046695 Author: Emmanuele Bassi Date: Tue Dec 20 14:58:08 2011 +0000 container: Deprecate more methods The get_children(), foreach(), and foreach_with_internals() methods and virtual functions are superceded by the Actor API, and should not be used in newly written code. clutter/clutter-container.c | 15 +++++++++++++-- clutter/clutter-container.h | 17 +++++------------ clutter/deprecated/clutter-container.h | 13 +++++++++++++ 3 files changed, 31 insertions(+), 14 deletions(-) commit 4eaa899871924304f4eb635fdaad3ef0663de51a Author: Emmanuele Bassi Date: Tue Dec 20 14:57:38 2011 +0000 group: Use Actor.remove_all_children() To implement the remove_all() method. clutter/deprecated/clutter-group.c | 18 +++--------------- 1 files changed, 3 insertions(+), 15 deletions(-) commit 1979faee0065d34b211e205d64f5484a58285480 Author: Emmanuele Bassi Date: Tue Dec 20 14:56:54 2011 +0000 cally: Use Actor.get_children() Instead of the Container method, given that the new get_children() gives us more actors by default. clutter/cally/cally-actor.c | 65 ++++++++++++++++++------------------------ 1 files changed, 28 insertions(+), 37 deletions(-) commit b42f17b2dcab6d750124afb90b01612311b672ad Author: Emmanuele Bassi Date: Tue Dec 20 14:47:35 2011 +0000 tests/interactive: Add a simple test for Actor It's meant to be xincluded in the API reference. tests/interactive/Makefile.am | 3 +- tests/interactive/test-actor.c | 62 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletions(-) commit 425ead5bd7316c415cff8094d30dca89ac59e347 Author: Emmanuele Bassi Date: Tue Dec 20 14:47:04 2011 +0000 actor: Add some debug spew clutter/clutter-actor.c | 16 ++++++++++++++++ 1 files changed, 16 insertions(+), 0 deletions(-) commit 86152f478db1ad0f51f97f341bcd7b1f6397d965 Author: Emmanuele Bassi Date: Tue Dec 20 13:32:37 2011 +0000 docs: Update the Actor API reference Given the size and scope of the changes in ClutterActor, we ought to rewrite the overall description of what an actor is, what it does, and how are you supposed to use it and subclass it. clutter/clutter-actor.c | 213 +++---- doc/reference/clutter/Makefile.am | 16 +- doc/reference/clutter/clutter-docs.xml.in | 5 +- doc/reference/clutter/clutter-sections.txt | 65 ++- doc/reference/clutter/creating-behaviours.xml | 68 -- doc/reference/clutter/subclassing-ClutterActor.xml | 672 -------------------- 6 files changed, 175 insertions(+), 864 deletions(-) commit 59590994737e2d05013c9941ac64ddb8a6d734eb Author: Emmanuele Bassi Date: Mon Dec 19 18:48:02 2011 +0000 Deprecate Container add() and remove() methods This will make things interesting. We have better replacements in ClutterActor, that do The Right Thing™ instead of deferring control and requiring reimplementation in every single container actor. clutter/Makefile.am | 1 + clutter/clutter-actor.c | 12 ++- clutter/clutter-bin-layout.c | 3 + clutter/clutter-box-layout.c | 3 + clutter/clutter-container.c | 174 +++++++++++++++++++------------ clutter/clutter-container.h | 16 --- clutter/clutter-deprecated.h | 1 + clutter/clutter-flow-layout.c | 3 + clutter/clutter-script-parser.c | 4 +- clutter/clutter-table-layout.c | 3 + clutter/deprecated/clutter-box.c | 3 + clutter/deprecated/clutter-container.h | 64 ++++++++++++ 12 files changed, 198 insertions(+), 89 deletions(-) commit f61916fc5e81d9265896b42cf34d53c5af987d00 Author: Emmanuele Bassi Date: Mon Dec 19 18:01:04 2011 +0000 actor: Add remove_all_children() A simple method for removing all children of an actor in one fell swoop. clutter/clutter-actor.c | 50 +++++++++++++++++++++++++++++++++--- clutter/clutter-actor.h | 1 + tests/conform/test-actor-graph.c | 28 ++++++++++++++++++++ tests/conform/test-conform-main.c | 3 +- 4 files changed, 76 insertions(+), 6 deletions(-) commit 673961f40cb69ad28806dfe763d74bac3662a8ad Author: Emmanuele Bassi Date: Mon Dec 19 17:34:22 2011 +0000 docs: Clarify the Actor's iterator API behaviour It should be noted in the documentation that it is not safe to operate on the list of children of an Actor while iterating over it. clutter/clutter-actor.c | 15 +++++++++++---- 1 files changed, 11 insertions(+), 4 deletions(-) commit 4f470b9231275c6966bde054f1eaf5f57bdd88f8 Author: Emmanuele Bassi Date: Mon Dec 19 14:37:42 2011 +0000 actor: Provide a proper implementation of replace_child() The correct sequence of actions should be remove(old) → insert(new), not insert(new) → remove(old). We can implement a simple delegate insertion functions to insert the new child between the previous and next siblings of the old child. While we're at it, let's also add a unit test for replace_child(). clutter/clutter-actor.c | 72 +++++++++++++++++++++++++++++++++++-- tests/conform/test-actor-graph.c | 60 ++++++++++++++++++++++++++++++ tests/conform/test-conform-main.c | 1 + 3 files changed, 130 insertions(+), 3 deletions(-) commit 5cba8012073e36677a86abd9ac22a69153aa9be9 Author: Emmanuele Bassi Date: Mon Dec 19 12:13:23 2011 +0000 actor: Fix get_paint_volume() default implementation Providing a default get_paint_volume() that takes into account the children of an actor was a goal of the whole First Apocalypse; if we make all the containers rely on it, and yet we return a FALSE value (meaning: we don't have a valid paint volume) even when we do have it, then we are going to break the whole machinery, though. clutter/clutter-actor.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit 3ad77b417ce55a354945378e4a1aa22234540099 Author: Emmanuele Bassi Date: Mon Dec 19 12:04:03 2011 +0000 stage: Use the Actor iteration API clutter/clutter-stage.c | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) commit aa9e2a382c313d6b2ce13937268f9b1588ae5573 Author: Emmanuele Bassi Date: Mon Dec 19 11:53:48 2011 +0000 Remove usage of Actor/Container.get_children() ClutterBox and ClutterGroup are still using the get_children() method instead of the child iteration API. clutter/deprecated/clutter-box.c | 23 ++++++++++++----------- clutter/deprecated/clutter-group.c | 10 +++++++--- 2 files changed, 19 insertions(+), 14 deletions(-) commit 62535bdc7350fd65310bf94aea3583577cf5b10e Author: Emmanuele Bassi Date: Mon Dec 19 07:20:20 2011 +0000 actor: Simplify first/last child updates clutter/clutter-actor.c | 45 +++++++++++++++++++-------------------------- 1 files changed, 19 insertions(+), 26 deletions(-) commit ab429f4f4547863e5afa98ed622d478107dbb783 Author: Emmanuele Bassi Date: Sun Dec 18 22:35:45 2011 +0000 Drop some more ClutterContainer.get_children() uses clutter/clutter-layout-manager.c | 11 ++++------- clutter/clutter-script-parser.c | 19 ++++++++----------- 2 files changed, 12 insertions(+), 18 deletions(-) commit ec6873958b2fbf820686006677da1e44647b910c Author: Emmanuele Bassi Date: Sun Dec 18 22:34:51 2011 +0000 fixed-layout: Use the Actor iteration API Forgot to migrate the FixedLayout layout manager like we did for the other layout managers provided by Clutter. clutter/clutter-fixed-layout.c | 34 ++++++++++++++-------------------- 1 files changed, 14 insertions(+), 20 deletions(-) commit 4d75e7a0f45c336441bf4cd218d5d922c8fd9897 Author: Emmanuele Bassi Date: Sun Dec 18 22:33:24 2011 +0000 cally: Use the Actor API instead of ClutterContainer Cally is doing a bunch of list traversals through the list returned by ClutterContainer.get_children(); this means a traversal already, plus a bunch of allocations. We can do better than that, now that we have a proper graph iteration API inside ClutterActor. clutter/cally/cally-actor.c | 74 ++++++++++++++---------------------------- 1 files changed, 25 insertions(+), 49 deletions(-) commit bd58694678fc2f6cdd6b6727677c8370ea62493b Author: Emmanuele Bassi Date: Sun Dec 18 22:14:36 2011 +0000 actor: Add replace_child() method A simple method that atomically replaces a child actor with another one. clutter/clutter-actor.c | 30 ++++++++++++++++++++++++++++++ clutter/clutter-actor.h | 3 +++ 2 files changed, 33 insertions(+), 0 deletions(-) commit 238a6eb03de549249ff02dd3b3b82b9626f142cf Author: Emmanuele Bassi Date: Sun Dec 18 21:18:27 2011 +0000 actor: Deprecate the old parent modifiers The old API should not be used in newly written code; we have better methods for setting up and modifying the scene graph, now. clutter/clutter-actor.c | 30 +++++++++++++++++++++--------- clutter/clutter-actor.h | 6 ------ clutter/deprecated/clutter-actor.h | 11 +++++++++++ 3 files changed, 32 insertions(+), 15 deletions(-) commit f2015baeb76b68eb5c5ac20f7f4bbf8dc43c8499 Author: Emmanuele Bassi Date: Sun Dec 18 21:09:44 2011 +0000 conform/actor-graph: Add lower/raise units Check that the lower_bottom(), lower(), raise(), and raise_top() methods work as intended. tests/conform/test-actor-graph.c | 106 +++++++++++++++++++++++++++++++++++++ tests/conform/test-conform-main.c | 2 + 2 files changed, 108 insertions(+), 0 deletions(-) commit 419a6a38f20781439669339c7a970d653523c5e7 Author: Emmanuele Bassi Date: Sun Dec 18 20:59:07 2011 +0000 conform: Add a suite for the Actor scene graph API Verify that insertion and removal maintain a stable graph, with pointers to the various children. This should help out tracking regressions in the scene graph API. tests/conform/Makefile.am | 1 + tests/conform/test-actor-graph.c | 147 +++++++++++++++++++++++++++++++++++++ tests/conform/test-conform-main.c | 7 +- 3 files changed, 153 insertions(+), 2 deletions(-) commit 813eef432548dd8bd1acfd3def86543d5530e24d Author: Emmanuele Bassi Date: Sun Dec 18 20:57:02 2011 +0000 actor: Fix child insertion issues The insert_child_at_index, insert_below and insert_above messed up the first and last child pointers in various cases. This commit fixes all the instances of first and last child pointers being stale or set to NULL. clutter/clutter-actor.c | 45 ++++++++++++++++++++++++++++++++++++++------- 1 files changed, 38 insertions(+), 7 deletions(-) commit 7e377b5aeef1dbf970b7fba391ccc9957ecd8e90 Author: Emmanuele Bassi Date: Sun Dec 18 11:26:29 2011 +0000 Port remaining layout managers to the new child iteration API TableLayout and FlowLayout now use the ClutterActor API for iterating over the children of an actor. clutter/clutter-flow-layout.c | 38 ++++++++------- clutter/clutter-table-layout.c | 104 ++++++++++++++++++++++++---------------- 2 files changed, 82 insertions(+), 60 deletions(-) commit 9c9ab420600576d4b1ea127024f513a91c44bed0 Author: Emmanuele Bassi Date: Sun Dec 18 10:29:01 2011 +0000 Begin porting layout managers to the new child iteration API Instead of getting the list of children to iterate over it, let's use the newly added child iteration API; this should save us a bunch of allocations, as well as indirections. Ported: ClutterBinLayout and ClutterBoxLayout. clutter/clutter-bin-layout.c | 34 ++++++++--------- clutter/clutter-box-layout.c | 84 ++++++++++++++++++------------------------ 2 files changed, 52 insertions(+), 66 deletions(-) commit 8b430507b5ba13f0caeae371251e0ae66da32b29 Author: Emmanuele Bassi Date: Sun Dec 18 10:26:35 2011 +0000 actor: Add children iteration methods Instead of requiring every consumer of the ClutterActor API that wishes to iterate over the children of an actor to use the get_children() method, we should provide an iteration API directly inside ClutterActor itself. clutter/clutter-actor.c | 89 +++++++++++++++++++++++++++++++++++++++++++++- clutter/clutter-actor.h | 15 +++++--- 2 files changed, 97 insertions(+), 7 deletions(-) commit 22259e09656a88dc0c080a0c327244cbfd78085b Author: Emmanuele Bassi Date: Fri Dec 16 18:41:38 2011 +0000 actor: Define the scene structure inside Actor Instead of storing the list of children, let's turn Actor inside a proper node of a tree. This change adds the following members to the Actor private data structure: first_child last_child prev_sibling next_sibling and removes the "children" GList from it; iteration is performed through the direct pointers to the siblings and children. This change makes removal, insertion before a sibling, and insertion after a sibling constant time operations, but it still retains the feature of ClutterActor.add_child() to build the list of children while taking into account the depth set on the newly added child, to allow the default painter's algorithm we employ inside the paint() implementation to at least try and cope with the :depth property (albeit in a fairly naïve way). Changes in the :depth property will not change the paint sequence any more: this functionality will be restored later. clutter/clutter-actor.c | 512 +++++++++++++++++++++++++--------------------- 1 files changed, 278 insertions(+), 234 deletions(-) commit 71545ae56f3d9cee09810bc4808d023807f25276 Author: Emmanuele Bassi Date: Mon Dec 12 11:57:45 2011 +0000 actor: Use a cairo_rectangle_t instead of a ridiculous array Make the code maintainable and readable. clutter/clutter-actor.c | 69 +++++++++++++++++++++-------------------------- 1 files changed, 31 insertions(+), 38 deletions(-) commit ea7111333b666338ed5e2c753ce186e012a8d0bd Author: Emmanuele Bassi Date: Fri Dec 9 17:17:21 2011 +0000 actor: Document fields of ClutterActorPrivate The private data structure members could do with more comments documenting what they do. clutter/clutter-actor.c | 18 ++++++++++++++++++ 1 files changed, 18 insertions(+), 0 deletions(-) commit 9eed2f58a635bebf9066f188498e095599d0d76d Author: Emmanuele Bassi Date: Fri Dec 9 14:38:25 2011 +0000 actor: Add TransformInfo ClutterTransformInfo is a (private) ancillary data structure that contains all the decomposed transformation data, i.e. rotation angles and centers, scale factors and centers, and anchor point. This data structure is stored in the GData of the actor instance instead of the actor's private data. This change gives us: • a smaller, cleaner private data structure; • no size penalty for untransformed actors; • static constant storage for the defaults, shared across all instances; • cache locality for all the decomposed transformation data, given that the structure size is smaller. At the end of the day, the only authoritative piece of information for actor transformation is the CoglMatrix that we initialize in apply_transform() from all the decomposed parameters, and that can stay inside the private data structure of ClutterActor. clutter/clutter-actor-private.h | 58 +++ clutter/clutter-actor.c | 857 ++++++++++++++++++++++++--------------- 2 files changed, 589 insertions(+), 326 deletions(-) commit 193af778663104bca0802821d5033f230eab91c0 Author: Emmanuele Bassi Date: Thu Dec 8 14:33:06 2011 +0000 docs: Update the release notes README.in | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) commit 376bf4a99084138b4728a80ac17fa0c0001892a9 Author: Emmanuele Bassi Date: Thu Dec 8 10:01:53 2011 +0000 actor: Tweak the underallocation warning There are only two kinds of actors that allow underallocations, according to the API contract: • ClutterStage, as it is a viewport and it doesn't have an implicit minimum size; • Actors using the CLUTTER_ACTOR_NO_LAYOUT escape hatch, which allows them to bail out from our layout management policies. The warning about underallocations should take these two exceptions under consideration. clutter/clutter-actor.c | 28 ++++++++++++++++++---------- 1 files changed, 18 insertions(+), 10 deletions(-) commit 6d268fe5ca5c0d97a64dc5a47cf29f549010c556 Author: Emmanuele Bassi Date: Tue Dec 6 17:49:27 2011 +0000 Deprecate ClutterRectangle A ClutterActor with a background color set covers 99% of the use cases for a Rectangle. clutter/Makefile.am | 8 +- clutter/clutter-deprecated.h | 1 + clutter/clutter-rectangle.c | 553 ------------------------------- clutter/clutter-rectangle.h | 102 ------ clutter/clutter.h | 1 - clutter/deprecated/clutter-rectangle.c | 558 ++++++++++++++++++++++++++++++++ clutter/deprecated/clutter-rectangle.h | 116 +++++++ 7 files changed, 679 insertions(+), 660 deletions(-) commit 6237eb7892f9b14d4e42d7ac2262c0a42e5f8433 Author: Emmanuele Bassi Date: Tue Dec 6 17:33:44 2011 +0000 Deprecate ClutterGroup The Group functionality is now provided by ClutterActor. Sadly, we need to keep the ClutterGroup structure definition in the non-deprecated header because ClutterStage inherits from Group - an API wart that was never fixed during the 0.x cycles, and that we'll have to keep around until we can break API. clutter/Makefile.am | 2 +- clutter/clutter-group.c | 278 ---------------------------------- clutter/clutter-group.h | 12 +- clutter/deprecated/clutter-group.c | 289 ++++++++++++++++++++++++++++++++++++ clutter/deprecated/clutter-group.h | 14 ++ 5 files changed, 310 insertions(+), 285 deletions(-) commit b4d269705ea18a0374c120c5b2172e0f4060d269 Author: Emmanuele Bassi Date: Tue Dec 6 17:18:23 2011 +0000 Deprecate ClutterBox ClutterBox functionality has been implemented by ClutterActor, and proxied by the Box subclass; with the removal of the abstract bit on ClutterActor, we can safely deprecated ClutterBox. clutter/Makefile.am | 4 +- clutter/clutter-box.c | 703 ------------------------------------ clutter/clutter-box.h | 127 ------- clutter/clutter-deprecated.h | 1 + clutter/clutter.h | 1 - clutter/deprecated/clutter-box.c | 732 ++++++++++++++++++++++++++++++++++++++ clutter/deprecated/clutter-box.h | 142 ++++++++ 7 files changed, 877 insertions(+), 833 deletions(-) commit a6df0b6a53ac7946acd758529403cebe64716d43 Author: Emmanuele Bassi Date: Tue Dec 6 17:44:04 2011 +0000 cally: Do not use Group API Avoids a deprecation warning. clutter/cally/cally-group.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 7fd35edd3fae2bc6181de79f5d0be0d82034e9fe Author: Emmanuele Bassi Date: Tue Dec 6 16:09:53 2011 +0000 actor: Make Actor instantiatable ClutterActor now has all the API and capabilities for being a concrete class: - layout management, through delegation - container implementation and API - background color This means that a simple scene can be built straight out of actors without using subclasses except for the Stage. This is the first step towards the deprecation of most of the Actor subclasses provided by Clutter. clutter/clutter-actor.c | 40 ++++++++++++++++++++++++++---------- clutter/clutter-actor.h | 4 ++- tests/conform/test-actor-layout.c | 24 ++++++++++++++------- 3 files changed, 48 insertions(+), 20 deletions(-) commit 8caee3e97e27c4240c57f85c0381a4f11b8d959f Author: Emmanuele Bassi Date: Tue Dec 6 16:00:49 2011 +0000 group: Proxy last few methods to Actor At this point, ClutterGroup is basically just a shim layer on top of ClutterActor. clutter/clutter-group.c | 24 +++++------------------- 1 files changed, 5 insertions(+), 19 deletions(-) commit 4acf8de8b460f87910e1d8c7105028546dce66d8 Author: Emmanuele Bassi Date: Tue Dec 6 16:00:08 2011 +0000 actor: Provide more children methods Add a getter for the number of children, as well as a method to retrieve the child at a given index. clutter/clutter-actor-private.h | 1 - clutter/clutter-actor.c | 36 +++++++++++++++++++++++++++++++++++- clutter/clutter-actor.h | 5 ++++- 3 files changed, 39 insertions(+), 3 deletions(-) commit b86cf3e2f3e240dde97838ff922d03d4e7004cd5 Author: Emmanuele Bassi Date: Mon Dec 5 13:08:41 2011 +0000 group: Use the default get_paint_volume() ClutterActor does everything we did, and more. clutter/clutter-group.c | 34 ---------------------------------- 1 files changed, 0 insertions(+), 34 deletions(-) commit e62536fad67e8e8250c0828006edafd6190c3d7d Author: Emmanuele Bassi Date: Mon Dec 5 12:45:08 2011 +0000 actor: Provide a better get_paint_volume() implementation ClutterActor can do better by default than just giving up immediately. An actor can check for the clip region, and for its children's paint volume, for instance. Just these two should give us a better default implementation for newly written code. clutter/clutter-actor.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 59 insertions(+), 1 deletions(-) commit 7195d0fccf073f348177db6cb6aa495cf5a52181 Author: Emmanuele Bassi Date: Mon Dec 5 10:25:42 2011 +0000 flow-layout: Fix minimum size request The minimum preferred size of a Flow layout manager is the size of a column or a row, as the whole point of the layout policy enforced by the Flow layout manager is to reflow when needed. clutter/clutter-flow-layout.c | 4 ++-- tests/interactive/test-flow-layout.c | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) commit ba093ed5e797c9ee52be4f43527dcfe2d9680a2c Author: Emmanuele Bassi Date: Mon Dec 5 10:19:45 2011 +0000 box: Proxy the Actor's background color properties ClutterBox's color and color-set properties can be implemented as proxies for the ClutterActor's newly added background-color and background-color-set properties, respectively. This also allows us to get rid of the paint() implementation inside ClutterBox altogether. clutter/clutter-box.c | 112 ++++++++++++++---------------------------------- 1 files changed, 33 insertions(+), 79 deletions(-) commit 98a8feae6414fcb427a242cdb86a91c1e07400f0 Author: Emmanuele Bassi Date: Mon Dec 5 08:41:51 2011 +0000 actor: Background color Each actor should have a background color property, disabled by default. This property allows us to cover 99% of the use cases for ClutterRectangle, and brings us one step closer to being able to instantiate ClutterActor directly. clutter/clutter-actor.c | 137 ++++++++++++++++++++++++++++++++++++++++++++++- clutter/clutter-actor.h | 5 ++ 2 files changed, 141 insertions(+), 1 deletions(-) commit 7d88a70b7807db4897a8dad24e657d8ac459cc4a Author: Emmanuele Bassi Date: Fri Dec 2 16:16:26 2011 +0000 actor: Cosmetic fixes to internal add/remove child Avoid code duplication all over the place. clutter/clutter-actor.c | 63 ++++++++++++++++++++++++++++------------------ 1 files changed, 38 insertions(+), 25 deletions(-) commit 24a451b388c15c2f4d6987d4634ed5dae3cb91cd Author: Emmanuele Bassi Date: Fri Dec 2 15:38:25 2011 +0000 conform/layout: Remove last Container.add_actor() usage Use clutter_actor_add_child(), now that Stage falls back to the default implementation of Container provided by the Actor class. tests/conform/test-actor-layout.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 3f877a3d7120854ab98f350f430d5f8a721a213e Author: Emmanuele Bassi Date: Fri Dec 2 15:36:58 2011 +0000 group: Use the default paint() implementation ClutterActor's paint implementation is perfectly fine for ClutterGroup: it paints the actor's children, which is exactly what ClutteGroup does. clutter/clutter-group.c | 19 ------------------- 1 files changed, 0 insertions(+), 19 deletions(-) commit 798a2e5297646d9455a36400f4958fa5f7921f2a Author: Emmanuele Bassi Date: Fri Dec 2 14:41:55 2011 +0000 actor: Minor cosmetic fixes to the header clutter/clutter-actor.h | 104 ++++++++++++++++++++++------------------------ 1 files changed, 50 insertions(+), 54 deletions(-) commit b869019eb27735ac170661f0c365dc817533129d Author: Emmanuele Bassi Date: Fri Dec 2 12:12:40 2011 +0000 group: Do not override Container Let ClutterActor do all the work. clutter/clutter-group.c | 276 ++++++++--------------------------------------- 1 files changed, 47 insertions(+), 229 deletions(-) commit ef3dc2d1bac85b958b3bb8cf32d8045978c1a853 Author: Emmanuele Bassi Date: Fri Dec 2 11:51:15 2011 +0000 actor: Make Actor.add_child and Container.add_actor idempotent And make sure that overriding Container and calling clutter_actor_add_child() will result in the same sequence of operations as the current set_parent()+queue_relayout()+signal_emit pattern. Existing containers can continue using: clutter_actor_set_parent (child, CLUTTER_ACTOR (container)); clutter_actor_queue_relayout (CLUTTER_ACTOR (container)); g_signal_emit_by_name (container, "actor-added", child); and newly written containers overriding Container.add() can simply call: clutter_actor_add_child (CLUTTER_ACTOR (container), child); instead. clutter/clutter-actor.c | 132 ++++++++++++++++++++++++++----------- tests/conform/test-actor-layout.c | 12 ++-- 2 files changed, 100 insertions(+), 44 deletions(-) commit 2894587b221352241d8eb5fdb1136d9856c36b3c Author: Emmanuele Bassi Date: Tue Nov 29 18:10:57 2011 +0000 actor: Do not leak the layout manager clutter/clutter-actor.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) commit 038aadfa72c2c286e40564410a3b317f629180ea Author: Emmanuele Bassi Date: Tue Nov 29 18:03:05 2011 +0000 box: Drop Container interface overrides And defer as much as possible to ClutterActor's default implementation for basically everything. clutter/clutter-box.c | 213 +++++-------------------------------------------- 1 files changed, 19 insertions(+), 194 deletions(-) commit b7737855338f6dbb9c647a47a69354d368bdda60 Author: Emmanuele Bassi Date: Tue Nov 29 18:02:20 2011 +0000 actor: Implement Container::sort_depth_order There's no reason this vfunc should be left out. clutter/clutter-actor.c | 27 +++++++++++++++++++++++++++ 1 files changed, 27 insertions(+), 0 deletions(-) commit 86ec629776a1fd0661bb298b46b8d706ca17ac3e Author: Emmanuele Bassi Date: Tue Nov 29 17:41:33 2011 +0000 actor: Add child insertion methods We should allow inserting children at given indices, and at given stacking positions (relative or not to other children). clutter/clutter-actor.c | 268 ++++++++++++++++++++++++++++++++++++++++++----- clutter/clutter-actor.h | 18 +++- 2 files changed, 256 insertions(+), 30 deletions(-) commit 8c2118542c565f6a81c0cda559eb979a766165b2 Author: Emmanuele Bassi Date: Mon Nov 28 17:42:49 2011 +0000 conform: Begin a test suite for layout options A simple sampling check to validate that we're painting the right thing at the right place. tests/conform/Makefile.am | 3 +- tests/conform/test-actor-layout.c | 288 +++++++++++++++++++++++++++++++++++++ tests/conform/test-conform-main.c | 2 + 3 files changed, 292 insertions(+), 1 deletions(-) commit 37d46649ce56ec55aaf23f7b745ae25224cf170a Author: Emmanuele Bassi Date: Mon Nov 28 15:30:52 2011 +0000 actor: Adjust the preferred size too Don't adjust just the allocation: we need to adjust the preferred size of the actor to account for the margin. clutter/clutter-actor.c | 346 +++++++++++++++++++++++++++++++---------------- clutter/clutter-actor.h | 1 + clutter/clutter-types.h | 4 +- 3 files changed, 230 insertions(+), 121 deletions(-) commit bf275751879848ff90fafe05fe9eb1c58f4f6190 Author: Emmanuele Bassi Date: Fri Nov 25 10:27:01 2011 +0000 actor: Maintain invariants in add_child/remove_child We need to queue a relayout when removing a visible child from a visible parent. We also need to insert the child at the right position (depending on the depth) so that newly added actors will be painted on top. clutter/clutter-actor.c | 580 +++++++++++++++++++++++++++++++++++++++++++++-- clutter/clutter-actor.h | 2 + clutter/clutter-types.h | 11 + 3 files changed, 572 insertions(+), 21 deletions(-) commit 9d9e98968f0373de795e0399c27c6c28dd9780cd Author: Emmanuele Bassi Date: Thu Nov 24 14:34:18 2011 +0000 actor: More cleanups to the Private data structure Try to document it properly. We can also remove some things that are properly encapsulated through functions, like the redraw clip volume. clutter/clutter-actor.c | 87 ++++++++++++++++++++++++----------------------- clutter/clutter-stage.c | 6 +-- 2 files changed, 46 insertions(+), 47 deletions(-) commit 913276976789aba4f5b833d3bcb5d6fb0b260bd8 Author: Emmanuele Bassi Date: Thu Nov 24 14:13:29 2011 +0000 actor: Store the fixed sizes into LayoutInfo Remove four more floats from ClutterActorPrivate. The fixed minimum and natural sizes should be stored inside the ClutterLayoutInfo structure, along with the fixed position. clutter/clutter-actor-private.h | 9 ++ clutter/clutter-actor.c | 200 ++++++++++++++++++++++++++++----------- 2 files changed, 152 insertions(+), 57 deletions(-) commit b4d3b52b625717ee66c7e01d810559ac6ac8f8ef Author: Emmanuele Bassi Date: Thu Nov 24 14:11:00 2011 +0000 actor: Update the underallocations check Add a failsafe against a NULL parent, to avoid a segfault when calling clutter_actor_allocate() on the Stage. We also need to deal with floating point values: straight comparison is not going to cut it. clutter/clutter-actor.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) commit 409c3ed8ff15352aa600e45efbb59360edf69513 Author: Emmanuele Bassi Date: Wed Nov 23 18:16:29 2011 +0000 actor: Adjust the allocation prior to call allocate() ClutterActor has various properties controlling the allocation: - x-align, y-align - margin-top, margin-bottom, margin-left, margin-right These properties should adjust the ClutterActorBox passed from the parent actor to its children when calling clutter_actor_allocate(), so that the child can just allocate its children at the right origin with the right available size. clutter/clutter-actor-private.h | 32 +++ clutter/clutter-actor.c | 402 +++++++++++++++++++++++++++++---------- 2 files changed, 329 insertions(+), 105 deletions(-) commit a85c53ea0bce23a369c7e5225c0a36d500a460b7 Author: Emmanuele Bassi Date: Tue Nov 22 17:03:00 2011 +0000 actor: Clean up property installation clutter/clutter-actor.c | 798 ++++++++++++++++++++++------------------------- 1 files changed, 377 insertions(+), 421 deletions(-) commit a2a38ee7976c0c7e51eea89f3f12479a5afd5371 Author: Emmanuele Bassi Date: Mon Nov 21 17:45:32 2011 +0000 actor: Add margin properties The actor class should be able to hold the margin offsets like it does for expand and alignment flags. Instead of filling the private data structure with data, we should be able to use an ancillary data structure, given that all this data is optional and might never be set in the first place. clutter/clutter-actor.c | 474 ++++++++++++++++++++++++++++++++++++++++++----- clutter/clutter-actor.h | 13 ++ clutter/clutter-types.h | 16 ++ 3 files changed, 452 insertions(+), 51 deletions(-) commit c8659b6ca562154734f10338136aa9d148e0c13f Author: Emmanuele Bassi Date: Mon Nov 21 17:24:03 2011 +0000 actor: Add [xy]-align Allow an actor to define how it should occupy the extra space given to by its parent during the allocation. clutter/clutter-actor.c | 101 +++++++++++++++++++++++++++++++++++++++++++++++ clutter/clutter-actor.h | 7 +++ clutter/clutter-enums.h | 27 ++++++++++++ 3 files changed, 135 insertions(+), 0 deletions(-) commit 4453ee7266944e82bce30a5d84e15d94db83df0b Author: Emmanuele Bassi Date: Mon Nov 21 14:53:14 2011 +0000 actor: Provide Container::raise/lower implementations clutter/clutter-actor.c | 67 ++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 57 insertions(+), 10 deletions(-) commit 752151bc975bbaa0ecd8e67d5125e9051faa5eb8 Author: Emmanuele Bassi Date: Mon Nov 21 14:52:39 2011 +0000 actor: Remove is-a(Container) checks All actors are now Container implementations, so there's no need to add a type check. clutter/clutter-actor.c | 37 ++++++++++++++----------------------- 1 files changed, 14 insertions(+), 23 deletions(-) commit f2609dcca4ead9014dc81867b07c50666df4639b Author: Emmanuele Bassi Date: Sun Nov 20 22:00:01 2011 +0000 actor: Add [xy]-expand properties clutter/clutter-actor.c | 99 +++++++++++++++++++++++++++++++++++++++++++++++ clutter/clutter-actor.h | 7 +++ 2 files changed, 106 insertions(+), 0 deletions(-) commit d5086da3fd3c32ddb5359c7d0dc5b64700138a98 Author: Emmanuele Bassi Date: Thu Nov 17 17:26:15 2011 +0000 box: Defer to ClutterActor Use the default implementation inside ClutterActor instead of our own, wherever possible. clutter/clutter-box.c | 158 +++++------------------------------------------- 1 files changed, 17 insertions(+), 141 deletions(-) commit 1c40151d0e38be7cc999febf126c0f151ed051d0 Author: Emmanuele Bassi Date: Thu Dec 8 11:57:19 2011 +0000 actor: Default to a fixed layout manager In case no layout manager was set during construction, we fall back to a FixedLayout. The FixedLayout has the property of making the fixed positioning and sizing API, as well as the various Constraints, work out of the box. clutter/clutter-actor.c | 17 +++++++++++++++++ 1 files changed, 17 insertions(+), 0 deletions(-) commit 11e876c86ba85e55c851201bedf8c5b6685091cc Author: Emmanuele Bassi Date: Thu Nov 17 17:07:10 2011 +0000 actor: Add :layout-manager Now that ClutterActor implements the Container contract we can actually defer the size negotiation to a ClutterLayoutManager directly from the default implementation of the Actor's virtual functions. clutter/clutter-actor.c | 144 ++++++++++++++++++++++++++++++++++++++ clutter/clutter-actor.h | 4 + clutter/clutter-layout-manager.h | 1 - clutter/clutter-types.h | 1 + 4 files changed, 149 insertions(+), 1 deletions(-) commit b45d78e6a17dea19db4c3369f3062ee5a1ed3a1d Author: Emmanuele Bassi Date: Thu Nov 17 16:32:05 2011 +0000 actor: Provide a default Container implementation We can provide most of the ClutterContainer implementation directly within ClutterActor — basically removing the need of having the Container interface in the first place. For backward compatibility reasons we can keep the interface, but let Actor implement it directly. clutter/clutter-actor.c | 82 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 82 insertions(+), 0 deletions(-) commit 8462b5ba458bb6fff93ecf7c8b74c6cf3101fd3c Author: Emmanuele Bassi Date: Thu Nov 17 15:23:05 2011 +0000 Do not use set_parent()/unparent() internally Use add_child()/remove_child() instead. clutter/clutter-actor.c | 12 ++++++------ clutter/clutter-box.c | 6 +++--- clutter/clutter-group.c | 4 ++-- clutter/clutter-texture.c | 25 +++++++++++++++---------- 4 files changed, 26 insertions(+), 21 deletions(-) commit 53aa64aeb9107ca0afc47a4aeb8667f5820c0190 Author: Emmanuele Bassi Date: Thu Nov 17 15:03:32 2011 +0000 actor: Provide add/remove child and get children methods Let's try and move away from the reverse implicit scene graph build API, which we mutuated from GTK+, towards a more traditional node/child API. The set_parent()/unparent() API is confusing, unless you know the history; having a add_child()/remove_child() methods pair makes it more explicit. We can easily implement the old set_parent()/unparent() pair in terms of the newly add_child()/remove_child() one. clutter/clutter-actor.c | 180 +++++++++++++++++++++++++++++------------------ clutter/clutter-actor.h | 5 ++ 2 files changed, 116 insertions(+), 69 deletions(-) commit 0396d3e7e6243037503d0bf220448caea13fea88 Author: Neil Roberts Date: Mon Jan 16 15:22:43 2012 +0000 Remove use of CoglVector3 Cogl has removed the CoglVector3 type in favour of directly using an array of 3 floats. Reviewed-by: Robert Bragg clutter/clutter-paint-volume.c | 11 ++++++----- clutter/clutter-private.h | 4 ++-- clutter/clutter-stage.c | 32 ++++++++++++++++---------------- 3 files changed, 24 insertions(+), 23 deletions(-) commit 7c14ba7d374db06db737b5b5e2df154ae5564df2 Author: Emmanuele Bassi Date: Fri Jan 13 16:21:15 2012 +0000 actor: Clean up the debug node for out-of-band transforms Enclose the check inside a #ifdef CLUTTER_ENABLE_DEBUG ... #endif, so that we can compile it out; also, use g_string_append() instead of the g_string_append_printf() function, given that we're just concatenating strings. clutter/clutter-actor.c | 31 ++++++++++++++++++++++++------- 1 files changed, 24 insertions(+), 7 deletions(-) commit f2a4aee41254ff9eb44655de4d2c5e8f7767e5cb Author: Fran Diéguez Date: Sun Jan 15 00:19:35 2012 +0100 Updated Galician translations po/gl.po | 606 ++++++++++++++++++++++++++++++++------------------------------ 1 files changed, 315 insertions(+), 291 deletions(-) commit e0e6b72b67e9c8c258a8e78fccf3655204b4a9e1 Author: Emmanuele Bassi Date: Thu Jan 12 23:20:59 2012 +0000 clutter.modules: Bump json-glib build/clutter.modules | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 646cf236a5dfba480f18f7dd82467ac3d2fe238f Author: Emmanuele Bassi Date: Thu Jan 12 13:31:21 2012 +0000 backend: Remove ClutterBackend::redraw The ::redraw virtual function was a throwback from olden times, and has been thoroughly replaced by the equivalent vfunc on the StageWindow interface. We can safely remove it, now, and simplify the flow of the redraw code inside ClutterStage. clutter/clutter-backend-private.h | 81 ++++++++++++++++-------------------- clutter/clutter-backend.c | 39 ------------------ clutter/clutter-stage.c | 23 ++++++++++- 3 files changed, 58 insertions(+), 85 deletions(-) commit 0c365f9f4c920274e1c1b8190b6bc804260355c6 Author: Emmanuele Bassi Date: Thu Jan 12 10:49:16 2012 +0000 gesture-action: Protect against NULL pointers clutter/clutter-gesture-action.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) commit 3b9b69ef54b0a90200477dd846921c46e01c2044 Author: Emmanuele Bassi Date: Thu Jan 12 10:49:02 2012 +0000 gesture-action: Use the event propagation macros clutter/clutter-gesture-action.c | 18 +++++++++--------- 1 files changed, 9 insertions(+), 9 deletions(-) commit d83fbd7bdf8cbeb5019e0be02ba4f0ac0aa5c436 Author: Emmanuele Bassi Date: Thu Jan 12 10:44:28 2012 +0000 docs: Add the ::destroy change in the release notes Given that I had to fix code inside Clutter that did not check for NULL pointers, I assume other people may experience the same issues. README.in | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) commit 99f7d627afd77852af0a038cab4a4e67c61450df Author: Emmanuele Bassi Date: Thu Jan 12 10:40:38 2012 +0000 text: Use the event and source symbolic macros Instead of boolean values. clutter/clutter-text.c | 32 ++++++++++++++++---------------- 1 files changed, 16 insertions(+), 16 deletions(-) commit 21149adb12643b34b959aa6c889322dbae1a2fff Author: Emmanuele Bassi Date: Thu Jan 12 10:39:59 2012 +0000 drop-action: Use the event propagation macros clutter/clutter-drop-action.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) commit 81694d0dd969d41e8e9825f504c1e07603c2afd2 Author: Emmanuele Bassi Date: Thu Jan 12 10:34:50 2012 +0000 drag-action: Use the new event propagation macros clutter/clutter-drag-action.c | 29 +++++++++++++++++------------ 1 files changed, 17 insertions(+), 12 deletions(-) commit cce2e25ac7ef395d880352c93272256ea088c2dd Author: Emmanuele Bassi Date: Thu Jan 12 10:34:26 2012 +0000 deform-effect: Check against NULL pointers Do not try to disconnect signal handlers from NULL pointers. clutter/clutter-deform-effect.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) commit 20e63532a4ed9b2a3476f0bf5e7cd45279ee2d13 Author: Emmanuele Bassi Date: Thu Jan 12 10:27:17 2012 +0000 click-action: Use the new symbolic event propagation macros clutter/clutter-click-action.c | 20 ++++++++++---------- 1 files changed, 10 insertions(+), 10 deletions(-) commit dbf3b607bf1b295c782ab8edfb2d80bc25f74a37 Author: Emmanuele Bassi Date: Thu Jan 12 10:26:47 2012 +0000 click-action: Be resilient against NULL pointers Do not try to disconnect signal handlers from NULL pointers. clutter/clutter-click-action.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) commit 8e6b3914ef77fc80af9fc5ca84b755c84551a245 Author: Emmanuele Bassi Date: Thu Jan 12 10:17:01 2012 +0000 build: Remove a bunch of useless checks Some pkg-config dependencies are still there from the days when Cogl was in tree - and even then, they barely made sense. .gitignore | 1 + configure.ac | 33 +++++---------------------------- 2 files changed, 6 insertions(+), 28 deletions(-) commit 7ca37b6e58a8aed699fd2d461fcbb9a2704550a7 Author: Emmanuele Bassi Date: Thu Jan 12 10:10:09 2012 +0000 build: Fix the private pkg-config requirements Private pkg-config requirements are conditional. configure.ac | 23 +++++++++++++++++------ 1 files changed, 17 insertions(+), 6 deletions(-) commit ed9c3ee54ebafb6e477cafc39d36cc96574938ee Author: Rob Bradford Date: Wed Jan 11 12:26:00 2012 +0000 wayland: Pull gdk-pixbuf in a private dependency This means it will get tested for explicitly as well as appearing in the Requires.private section of the pkg-config file. configure.ac | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) commit 4afe793eedc6b822ac2aa9465808239cacaa9cf8 Author: Rob Bradford Date: Wed Jan 11 12:23:46 2012 +0000 build: Add infrastructure for inserting Requires.private into pkg-config files clutter/clutter.pc.in | 2 ++ configure.ac | 5 +++++ 2 files changed, 7 insertions(+), 0 deletions(-) commit a9e6137f4727750e391b105581b4fd17acb09c31 Author: Rob Bradford Date: Tue Jan 10 17:25:35 2012 +0000 wayland: Attach cursor buffer to input device when it enters the surface The Wayland semantics mean that we must attach a buffer to the input device when the pointer enters the surface to provide a cursor. clutter/wayland/clutter-input-device-wayland.c | 15 +++++++++++++-- 1 files changed, 13 insertions(+), 2 deletions(-) commit e1434cebdb7b77ef39296eb80cb4b928a5267c2c Author: Rob Bradford Date: Tue Jan 10 16:40:59 2012 +0000 wayland: Load a buffer from well known location for the cursor Semantic changes to Wayland means that we cannot rely on the compositor setting a pointer buffer for us if set it to nil. The first part of fixing this is to create an shm buffer containing the bytes for our cursor. The best way to do this currently is to load the cursor from the well known location where weston instals its cursor images. The code to implemente this was derivedlifted from the Wayland backend in GTK+. clutter/wayland/clutter-backend-wayland.c | 179 +++++++++++++++++++++++++++++ clutter/wayland/clutter-backend-wayland.h | 3 + 2 files changed, 182 insertions(+), 0 deletions(-) commit 3c99fd2ddbdda96896acd2023cb2dbdeb7ff2544 Author: Ryan Lortie Date: Mon Jan 9 16:04:08 2012 +0100 Prevent .po file updates on simple 'make' https://bugzilla.gnome.org/show_bug.cgi?id=661128 autogen.sh | 4 + po/clutter-1.0.pot | 2202 ---------------------------------------------------- 2 files changed, 4 insertions(+), 2202 deletions(-) commit de942120242ec1257670b624b64a0102e1090f8b Author: Alexander Shopov Date: Sun Jan 8 14:30:48 2012 +0200 Updated Bulgarian translation po/bg.po | 1042 ++++++++++++++++++++++++++++++++------------------------------ 1 files changed, 540 insertions(+), 502 deletions(-) commit d8e855e5854f57053f6fad491e9860dcc7287e56 Author: Emmanuele Bassi Date: Sat Jan 7 10:41:25 2012 +0000 osx: Use Lucida Grande as the default font Instead of falling back to the generic "Sans". clutter/osx/clutter-backend-osx.c | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-) commit 95d3e0f962a896bdfa24945b50e82ccd6d4e1495 Author: Emmanuele Bassi Date: Fri Jan 6 14:04:43 2012 +0000 actor: Change the point of emission of ::destroy Currently, we're emitting the ClutterActor::destroy at the end of the dispose implementation - right before we chain up to the parent implementation. The point of emission makes the ::destroy signal handlers able to just use the actor pointer - as the actor state will have been mostly cleared by the time application can run. This (undocumented) behaviour severely limits the amount of things you can do inside a ::destroy signal handler, thus making the ::destroy signal just a weird weak reference, instead of a proper way to break application reference cycles. Given that this change relaxes some of the conditions, this change should be safe - obviously, if anything happens, we'll back it out; the conformance and interactive tests confirm that, for common patterns of usage, this change does not break existing code. clutter/clutter-actor.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit fa39f67eab9af470cc815a8900806567cd966721 Author: Emmanuele Bassi Date: Fri Jan 6 14:02:54 2012 +0000 actor: Use g_clear_object() GLib has a nice, atomic object clearing function that allows us to drop code looking like: if (priv->object != NULL) { g_object_unref (priv->object); priv->object = NULL; } from the ::dispose implementation. clutter/clutter-actor.c | 34 +++++----------------------------- 1 files changed, 5 insertions(+), 29 deletions(-) commit 88aaad9bdf22ae7d5d1c317d894faecc5d4a125c Author: Emmanuele Bassi Date: Tue Jan 3 14:38:56 2012 +0000 docs: Add event propagation symbolic constants doc/reference/clutter/clutter-sections.txt | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) commit e3511fcbac0eab551abd6038894ff2d17d8a1a23 Author: Emmanuele Bassi Date: Tue Jan 3 14:00:40 2012 +0000 configure: Clean up help and configuration summary configure.ac | 23 ++++++++++++++--------- 1 files changed, 14 insertions(+), 9 deletions(-) commit f5fffb355b546cd36621b1de0bf15472da10f782 Author: Emmanuele Bassi Date: Tue Jan 3 13:50:06 2012 +0000 Move Perspective and Fog definitions to clutter-types.h Since we reference the types from multiple files. clutter/clutter-stage.h | 7 ------- clutter/clutter-types.h | 4 ++++ 2 files changed, 4 insertions(+), 7 deletions(-) commit fd1196c7b5b70f4f827998b19189c05ad699ad36 Author: Emmanuele Bassi Date: Tue Jan 3 12:10:28 2012 +0000 docs/cookbook: Mention the event control macros Now that we have symbolic names for event propagation values for signal handlers, we ought to mention them in the cookbook. doc/cookbook/events.xml | 26 ++++++++++++++++---------- 1 files changed, 16 insertions(+), 10 deletions(-) commit 6184bf1b6e19fb73d96f20aa4f6bdf26ec299a0e Author: Emmanuele Bassi Date: Tue Dec 20 12:28:06 2011 +0000 Add symbolic constants for event propagation I always have to think twice before returning a value from an event signal handler, and I've been writing them for the past 10 years, so it's conceivable that application developers that start with Clutter will find them confusing as well. Simple symbolic names should be easier to use. clutter/clutter-event.h | 22 +++++++++++++++++++++- 1 files changed, 21 insertions(+), 1 deletions(-) commit 83c560db984d188bc814fa02f2ff81f2d8e10055 Author: Emmanuele Bassi Date: Fri Dec 30 10:34:54 2011 +0000 docs: Update the release notes README.in | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) commit e689d0180056a2b02757c896910ff649187958fd Author: Emmanuele Bassi Date: Fri Dec 30 10:23:15 2011 +0000 stage: Deprecate :use-fog and :fog The depth cueing through GL fog has been broken for a long while, now. The fog-related API in Clutter is ridiculously limited, and harks back to simpler times; the ClutterFog structure is not enough to express all the GL fog machinery, and required application code to connect to the Stage's paint implementation and drop into Cogl directly. Additionally, the fixed pipeline fog machinery in GL simply does not work with premultiplied alpha, unless you use a shader - and in that case it would only work for textures. Let's deprecate it, and just don't do anything if somebody has the brilliant idea of setting the :use-fog property to TRUE. clutter/clutter-stage.c | 44 +++++++---- clutter/clutter-stage.h | 153 ++++++++++++++++------------------- clutter/deprecated/clutter-stage.h | 14 +++ 3 files changed, 113 insertions(+), 98 deletions(-) commit 65889fa075f6123caf0d47568413466e039b5eef Author: Emmanuele Bassi Date: Fri Dec 30 09:51:36 2011 +0000 box: Remove the sentinel annotation Sadly, we need to remove the G_GNUC_NULL_TERMINATED annotation from ClutterBox packing API; the compiler will otherwise emit a warning for perfectly legal statements like: clutter_box_pack (box, child, NULL); because of the missing sentinel. See also: g_object_new(). clutter/clutter-box.h | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) commit 180eecbce6b77539d112a19bb9887812546ef05e Author: Emmanuele Bassi Date: Tue Dec 27 21:39:13 2011 +0000 docs: Document CLUTTER_ENABLE_DIAGNOSTIC Add a note in the API reference. doc/reference/clutter/running-clutter.xml | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-) commit 7d4a9c6f1e8e6f77688a5d15fc2644769d2a60a1 Author: Emmanuele Bassi Date: Tue Dec 20 15:17:54 2011 +0000 Add diagnostic mode GLib has a "diagnostic mode" switch that can be checked to enable debug messages on deprecated properties and signals, as these are purely run-time constructs, and as such cannot be caught by compiler warnings. The diagnostic mode is toggled by a simple environment variable, and can be used to ease porting of application code. We can use something similar to mark deprecated virtual functions and other run-time constructs; to avoid collisions, we should use our own environment variable, CLUTTER_ENABLE_DIAGNOSTIC. clutter/clutter-main.c | 31 +++++++++++++++++++++++++++++++ clutter/clutter-private.h | 4 ++++ 2 files changed, 35 insertions(+), 0 deletions(-) commit db246569b78c500caf2e8c58921bee0fc47b6bf8 Author: Kjartan Maraas Date: Wed Dec 21 22:06:54 2011 +0100 Updated Norwegian bokmål translation po/nb.po | 1046 ++++++++++++++++++++++++++++++++------------------------------ 1 files changed, 542 insertions(+), 504 deletions(-) commit b882fcd8258f02a968dca381e498a3f1877bda5c Author: Jasper St. Pierre Date: Sun Dec 18 23:20:04 2011 -0500 clutter-text: Fix memory leak clutter/clutter-text.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) commit 20bc5c2057f8bad1910c64e8ee49b6b798fbe8bc Author: Matej Urbančič Date: Sat Dec 17 18:59:49 2011 +0100 Updated Slovenian translation po/sl.po | 114 +++++++++++++++++++++++++++++++++++++------------------------ 1 files changed, 69 insertions(+), 45 deletions(-) commit c4590e59c72ac4253c4ede1badd4684bb616b30c Author: Chun-wei Fan Date: Tue Dec 13 13:07:46 2011 +0800 Visual C++ 2008 projects update Refines things a little bit from the last Visual C++ 2008 project updates. build/win32/vs9/cally-atkcomponent-example.vcproj | 8 ++++---- .../win32/vs9/cally-atkeditabletext-example.vcproj | 8 ++++---- build/win32/vs9/cally-atkevents-example.vcproj | 8 ++++---- build/win32/vs9/cally-atktext-example.vcproj | 8 ++++---- build/win32/vs9/cally-clone-example.vcproj | 8 ++++---- build/win32/vs9/clutter.vsprops | 10 +++++----- 6 files changed, 25 insertions(+), 25 deletions(-) commit 1dd28537c4a3af3fffbcc4d85ec1c98126524d7b Author: Chun-wei Fan Date: Tue Dec 13 13:05:16 2011 +0800 Update Visual C++ 2010 Projects Disable deprecation warning messages for the accessibility, performance and micro-bench programs. build/win32/vs10/clutter.props | 8 ++++++-- build/win32/vs10/test-cogl-perf.vcxproj | 8 ++++---- build/win32/vs10/test-picking.vcxproj | 8 ++++---- build/win32/vs10/test-random-text.vcxproj | 8 ++++---- build/win32/vs10/test-text-perf.vcxproj | 8 ++++---- build/win32/vs10/test-text.vcxproj | 8 ++++---- 6 files changed, 26 insertions(+), 22 deletions(-) commit 91b0aadbd400f0df69f7c80f456cb0ca06c17f8b Author: Chun-wei Fan Date: Tue Dec 13 12:56:53 2011 +0800 Update Visual C++ 2008 Projects Turn off the deprecation warnings for the accessibility, performance and micro-bench programs. build/win32/vs9/cally-atkcomponent-example.vcproj | 8 ++++---- .../win32/vs9/cally-atkeditabletext-example.vcproj | 8 ++++---- build/win32/vs9/cally-atkevents-example.vcproj | 8 ++++---- build/win32/vs9/cally-atktext-example.vcproj | 8 ++++---- build/win32/vs9/cally-clone-example.vcproj | 8 ++++---- build/win32/vs9/clutter.vsprops | 6 +++++- build/win32/vs9/test-cogl-perf.vcproj | 8 ++++---- build/win32/vs9/test-picking.vcproj | 8 ++++---- build/win32/vs9/test-random-text.vcproj | 8 ++++---- build/win32/vs9/test-text-perf.vcproj | 8 ++++---- build/win32/vs9/test-text.vcproj | 8 ++++---- 11 files changed, 45 insertions(+), 41 deletions(-) commit 23960328d578d912162d52bc0c4096784add31cb Author: Chun-wei Fan Date: Tue Dec 13 12:44:27 2011 +0800 Update clutter.symbols... ...For the addition of queue_redraw_with_clip (commit f0a246cd) clutter/clutter.symbols | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit f0468cf828d933431ef4e18f3b60376f5df76cf6 Author: Emmanuele Bassi Date: Mon Dec 12 16:44:47 2011 +0000 wayland/surface: Use queue_redraw_with_clip() Just like the X11 texture-pixmap actor. https://bugzilla.gnome.org/show_bug.cgi?id=660997 clutter/wayland/clutter-wayland-surface.c | 22 ++++++++-------------- 1 files changed, 8 insertions(+), 14 deletions(-) commit 30c464e68f302c5039421b5cc9b043bfa8dc2e9c Author: Emmanuele Bassi Date: Mon Oct 31 11:56:23 2011 +0000 x11/texture-pixmap: Use ClutterActor.queue_redraw_with_clip() Instead of using a PaintVolume for a 2D region, and an internal function, use the newly added queue_redraw_with_clip() method. This removes the last bit of internal API usage in the ClutterX11TexturePixmap actor. https://bugzilla.gnome.org/show_bug.cgi?id=660997 clutter/x11/clutter-x11-texture-pixmap.c | 26 +++++++++----------------- 1 files changed, 9 insertions(+), 17 deletions(-) commit 749fe38fec090fcbf7cb0a7ea1c98028a08fcb4e Author: Emmanuele Bassi Date: Mon Oct 31 11:55:35 2011 +0000 x11/stage: Use ClutterActor.queue_redraw_with_clip() Instead of using a paint volume for a 2D region, use the newly added queue_redraw_with_clip() method. https://bugzilla.gnome.org/show_bug.cgi?id=660997 clutter/x11/clutter-stage-x11.c | 21 ++++++--------------- 1 files changed, 6 insertions(+), 15 deletions(-) commit f0a246cdc6f3ca35d409b82297d2a99c5e8c7b32 Author: Emmanuele Bassi Date: Mon Oct 31 11:53:45 2011 +0000 actor: Add queue_redraw_with_clip() Add a public version of the clipped queue redraw, using a 2D clip. This allows implementing actors with trackable 2D clipped regions, like the ClutterX11TexturePixmap, outside of Clutter itself. https://bugzilla.gnome.org/show_bug.cgi?id=660997 clutter/clutter-actor.c | 47 +++++++++++++++++++++++++++++++++++++++++++++-- clutter/clutter-actor.h | 2 ++ clutter/clutter-types.h | 2 ++ 3 files changed, 49 insertions(+), 2 deletions(-) commit c3639fd798ddd195075a2edf1e37825deb5f5aa2 Author: Daniel Mustieles Date: Fri Dec 9 18:08:48 2011 +0100 Updated Spanish translation po/es.po | 244 +++++++++++++++++++++++++++++++++++--------------------------- 1 files changed, 137 insertions(+), 107 deletions(-) commit 79c04bd1335db04b5152130a027d2d22c9486f56 Author: Emmanuele Bassi Date: Thu Dec 8 10:01:06 2011 +0000 fixed-layout: Use a better quark name The "fixed-container" name is far too generic, and it may very likely lead to collisions with application code. clutter/clutter-fixed-layout.c | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) commit 20b9ec8c6bd900960a811b38e968d2e976064821 Author: Emmanuele Bassi Date: Tue Dec 6 17:43:13 2011 +0000 build: Disable deprecation warnings in tests/accessibility Like we do in the other tests/ sections. tests/accessibility/Makefile.am | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 9e3a8a678e44dd53f0a291a9d0e8e7d74e643d3c Author: Emmanuele Bassi Date: Tue Dec 6 17:56:45 2011 +0000 build: Disable deprecation warnings in tests/micro-bench tests/micro-bench/Makefile.am | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) commit bedf1664a7232cec704566e55c7804354f633f52 Author: Emmanuele Bassi Date: Tue Dec 6 17:53:37 2011 +0000 build: Disable deprecation warnings in tests/performance tests/performance/Makefile.am | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) commit dc84557ac3af47b59f5145e68cddfe37ca910089 Author: Jovan Naumovski Date: Thu Dec 8 21:22:38 2011 +0100 Updated Macedonian translation. po/mk.po | 2226 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 2226 insertions(+), 0 deletions(-) commit 764343c4973179ffaff7c8c4822a77312e32d1cd Author: Piotr Drąg Date: Thu Dec 8 20:54:12 2011 +0100 Updated POTFILES.in po/POTFILES.in | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit 320356e97f2312f8ad4285ca436dca71a69c7cec Author: Rob Bradford Date: Thu Dec 8 17:39:15 2011 +0000 wayland: Refine enter/leave event handling The Wayland protocol now has events represent when a pointer enters the surface and when it leaves again. For leaves the surface is not set in the event, for enters the surface is set. Simply use this to determine whether to emit CLUTTER_ENTER or CLUTTER_LEAVE. clutter/wayland/clutter-input-device-wayland.c | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-) commit 34cc45dae5f05be80e3eb389c55e40aed2e97bf4 Author: Rob Bradford Date: Thu Dec 8 17:32:27 2011 +0000 wayland: Update to latest Wayland API (wl_shell_surface transition) Previously the wl_shell object held the methods that allowed a client to request changes to the shell's state associated with a surface. These methods have now been moved to a wl_shell_surface object. This change allows configure events to be handled inside the stage rather than the backend. clutter/wayland/clutter-backend-wayland.c | 30 +----------------------- clutter/wayland/clutter-stage-wayland.c | 36 ++++++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 30 deletions(-) commit af294aafe600145a2d891ad9a0ba5418f6583cc6 Author: Robert Bragg Date: Tue Dec 6 21:53:57 2011 +0000 Add public CLUTTER_HAS_WAYLAND_COMPOSITOR_SUPPORT define When clutter has been built with Wayland compositor support then we now expose a public CLUTTER_HAS_WAYLAND_COMPOSITOR_SUPPORT define so that applications can #ifdef code that depends on the api that this feature implies. Reviewed-by: Emmanuele Bassi configure.ac | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) commit 3e85ad6b95cfa41027d6fbf4a9caf0a7d84e8bce Author: Robert Bragg Date: Tue Dec 6 21:49:15 2011 +0000 build: make internal option_xkb_* symbols static This makes the option_xkb_* symbols declared for the evdev device manager and the wayland device manager private so we don't get symbol collisions if both of these backends are enabled. Reviewed-by: Emmanuele Bassi clutter/evdev/clutter-device-manager-evdev.c | 6 +++--- clutter/wayland/clutter-device-manager-wayland.c | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) commit fd8965a710c313a968a7dc469b88778a7d55bf10 Author: Robert Bragg Date: Tue Dec 6 21:46:37 2011 +0000 xkb-utils: Adds #ifdef guards for repeat includes This adds #ifdef/#define repeat include guards for clutter-xkb-utils.h Reviewed-by: Emmanuele Bassi clutter/evdev/clutter-xkb-utils.h | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) commit d8e76c341558f852bb1c4a94959120eeee459f88 Author: Robert Bragg Date: Mon Dec 5 14:01:30 2011 +0000 eglnative: fix building eglnative BE with evdev support this fixes how clutter-device-manager-evdev.h is included to fix a build problem caused by not being able to find the header. Reviewed-by: Emmanuele Bassi clutter/egl/clutter-backend-eglnative.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 602a89afa8f9ea548b8f98fb9e5ada3ef59f09f2 Author: Robert Bragg Date: Mon Dec 5 13:59:12 2011 +0000 evdev: fixes evdev build issues + don't ref default stage This updates the evdev input backend code to compile and also updates the code to not refer to the default stage and instead check for a stage to be associated with the input device. If no stage is currently associated with a device generating events then the events are dropped on the floor. Reviewed-by: Emmanuele Bassi clutter/evdev/clutter-device-manager-evdev.c | 63 ++++++++++++++----------- configure.ac | 1 + 2 files changed, 36 insertions(+), 28 deletions(-) commit 86f2aed570dcd83becfc91c5a076027c687c0dae Author: Robert Bragg Date: Mon Dec 5 13:49:28 2011 +0000 input: adds internal _clutter_input_device_get_stage api This adds internal api to be able to query the stage currently associated with a given input device so input backends shouldn't need to refer to the default stage. Reviewed-by: Emmanuele Bassi clutter/clutter-device-manager-private.h | 1 + clutter/clutter-input-device.c | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 0 deletions(-) commit e5bde0b0743f718904d53731ea30d414ad915f4c Author: Robert Bragg Date: Mon Dec 5 14:05:57 2011 +0000 tests: Adds a simple wayland compositor example This adds an extremely minimal wayland compositor to tests/interactive to test the ClutterWaylandSurface actor. Currently this minimal compositor doesn't support any input, it simply paints client surfaces fixed at the top-left of the stage. Reviewed-by: Emmanuele Bassi tests/interactive/Makefile.am | 4 + tests/interactive/test-wayland-surface.c | 567 ++++++++++++++++++++++++++++++ 2 files changed, 571 insertions(+), 0 deletions(-) commit 16ed7677e00fda9e9ef4e85ef7032a367e273e0c Author: Robert Bragg Date: Fri May 13 16:54:11 2011 +0100 Adds wayland-surface actor for wayland compositors This adds a --enable-wayland-compositor configure option which will add support for a ClutterWaylandSurface actor which can be used to aid in writing Wayland compositors using Clutter by providing a ClutterActor to represent Wayland client surfaces. Notably this configure option isn't tied into any particular backend since conceptually the compositor support can be used in conjunction with any clutter backend that has corresponding Cogl support. Reviewed-by: Emmanuele Bassi clutter/Makefile.am | 8 + clutter/clutter-backend.c | 41 ++ clutter/wayland/clutter-wayland-compositor.h | 43 ++ clutter/wayland/clutter-wayland-surface.c | 565 ++++++++++++++++++++++++++ clutter/wayland/clutter-wayland-surface.h | 94 +++++ configure.ac | 28 ++- doc/reference/clutter/clutter-sections.txt | 15 + 7 files changed, 792 insertions(+), 2 deletions(-) commit 07c6f96cb43b1e0c788e50323f1184bd2906e3f7 Author: Robert Bragg Date: Mon May 9 22:45:33 2011 +0100 wayland: Updates client side wayland support This updates Wayland support in line with upstream changes to the Wayland API and protocol. This update means we no longer use the Cogl stub winsys so a lot of code that had to manually interact with EGL and implement a swap_buffers mechanism could be removed and instead we now depend on Cogl to handle those things for us. This update also adds an input device manager consistent with other clutter backends. Note: to use the client side "wayland" clutter backend you need to have built Cogl with --enable-wayland-egl-platform. If Cogl has been built with support for multiple winsys backends then you should run applications with COGL_RENDERER=EGL in the environment. Reviewed-by: Emmanuele Bassi clutter/Makefile.am | 49 +- clutter/clutter-backend.c | 11 + clutter/wayland/clutter-backend-wayland.c | 603 ++++----------------- clutter/wayland/clutter-backend-wayland.h | 38 +- clutter/wayland/clutter-device-manager-wayland.c | 226 ++++++++ clutter/wayland/clutter-device-manager-wayland.h | 75 +++ clutter/wayland/clutter-event-wayland.c | 6 +- clutter/wayland/clutter-event-wayland.h | 37 ++ clutter/wayland/clutter-input-device-wayland.c | 156 ++---- clutter/wayland/clutter-input-device-wayland.h | 56 ++ clutter/wayland/clutter-stage-wayland.c | 634 +--------------------- clutter/wayland/clutter-stage-wayland.h | 65 +-- clutter/wayland/clutter-wayland.h | 61 -- configure.ac | 19 +- doc/reference/clutter/clutter-sections.txt | 6 - 15 files changed, 631 insertions(+), 1411 deletions(-) commit 36c312cb241c5c87d3a8778ea376ab2b67601683 Author: Chun-wei Fan Date: Thu Dec 8 17:58:17 2011 +0800 Update Clutter Visual C++ 2008 Project Made up for missed pre-build command for x64/Release. build/win32/vs9/clutter.vcprojin | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit 6ad1afd8037cffc73617f39c7a668a493d295bee Author: Chun-wei Fan Date: Thu Dec 8 17:40:22 2011 +0800 clutter/Makefile.am: Update gen-enums.bat generation It's $(srcdir)/win32/clutter-win32.h, not $(srcdir)/clutter-win32.h Sorry! clutter/Makefile.am | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit b6c5c0602dfa152603d6345b0c2fc6a1d00b0cf4 Author: Chun-wei Fan Date: Thu Dec 8 17:39:26 2011 +0800 Update VS property sheets Generate clutter-marshal.[ch] before the clutter-enum-types.[ch]. Strangely Visual C++ does funny things if this was done the other way around. :| build/win32/vs10/clutter.props | 14 +++++++------- build/win32/vs9/clutter.vsprops | 8 ++++---- 2 files changed, 11 insertions(+), 11 deletions(-) commit 7a70e1f08b7755a7c3b79c21c49f746006ea7483 Author: Chun-wei Fan Date: Thu Dec 8 17:04:46 2011 +0800 clutter/Makefile.am-Create batch to gen enums (VS Support) Generate a .bat file to generate the clutter-enum-types.[ch] for use during the Visual C++ build process, which will greatly simplify the maintenanace of the VS build files as public headers are added or removed during the development process. clutter/Makefile.am | 46 +++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 43 insertions(+), 3 deletions(-) commit daf2b67ed28d3e6ef6d2b2ffa99c3ab86d67d0e6 Author: Chun-wei Fan Date: Thu Dec 8 17:02:17 2011 +0800 Update VS property sheets Use a pregenerated .bat file to generate the clutter-enum-types.[ch], which will greatly simplify the maintenanace of the VS build files as public headers are added or removed. build/win32/vs10/clutter.props | 21 +++------------------ build/win32/vs9/clutter.vsprops | 14 +++----------- 2 files changed, 6 insertions(+), 29 deletions(-) commit 075ab0cbe64d656de950b6a383fdcc8d1356877e Author: Chun-wei Fan Date: Wed Dec 7 18:14:17 2011 +0800 conform/Makefile.am: Update Win32 test .bat name Rename to test-conformance-clutter.bat to make the file name clearer to users tests/conform/Makefile.am | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 158245fda31e7adad38aa49e4c12efcad0e326e0 Author: Emmanuele Bassi Date: Mon Dec 5 11:43:48 2011 +0000 backend: Fix em computation for non-absolute fonts If a font description is not set to have an absolute size then we were using the wrong transformation for points to device units. clutter/clutter-backend.c | 8 ++------ 1 files changed, 2 insertions(+), 6 deletions(-) commit 943a65b476431400bd0436e1be243a2917385866 Author: Emmanuele Bassi Date: Mon Dec 5 11:42:49 2011 +0000 backend: Return the correct default resolution If ClutterSettings:font-dpi is set to -1 then the default resolution should be returned by ClutterBackend — i.e. 96.0. clutter/clutter-backend.c | 11 ++++++++++- 1 files changed, 10 insertions(+), 1 deletions(-) commit 8d234d270a00abee8c46561903193097de78efe3 Author: Bastien Nocera Date: Thu Dec 1 19:29:58 2011 +0100 Fix Brazilian Portuguese translation Once you add the missing translator comments, it makes a lot more sense... po/pt_BR.po | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) commit f7bb1e879ef083644acd4774dcb50c9edc018c6f Author: Jasper St. Pierre Date: Sat Nov 26 05:15:17 2011 -0500 main: Fix keyboard event emission for non-reactive actors This is an innocent copy-paste issue that ended up breaking a few things https://bugzilla.gnome.org/show_bug.cgi?id=664582 clutter/clutter-main.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 1dc7c4543896bfc2f2cd460cdea9c417aefd7952 Author: Emmanuele Bassi Date: Thu Dec 1 13:41:45 2011 +0000 x11: Do not try to access private structures ClutterInputDeviceX11 has been made private, so we cannot access it from outside of clutter-input-device-core-x11.c. We should have simple accessors for the min/max keycode, which is the only detail that we use. clutter/x11/clutter-device-manager-core-x11.c | 5 +++-- clutter/x11/clutter-input-device-core-x11.c | 25 +++++++++++++++++++++++-- clutter/x11/clutter-input-device-core-x11.h | 6 ++++++ 3 files changed, 32 insertions(+), 4 deletions(-) commit 67cdbbaf514ca8b33e4e19014b935aea40e91822 Author: Manuel Osdoba Date: Sun Nov 13 21:49:23 2011 +0100 Currently Clutter only prints out a warning message in case some shader effects fail to compile Clutter-WARNING **: Unable to compile the GLSL shader: Fragment shader failed to compile with the following errors: The attached patch (against current git) should print out more information what makes it easier to answer user feedback. https://bugzilla.gnome.org/show_bug.cgi?id=664252 clutter/clutter-shader-effect.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 6336883da7aa15ec06d9f3218ad5c617e57af0a5 Author: Bastian Winkler Date: Fri Nov 18 15:18:28 2011 +0100 path: Fix introspection annotations Add out annotations for clutter_path_get_node() and clutter_path_get_position() https://bugzilla.gnome.org/show_bug.cgi?id=664336 clutter/clutter-path.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit dc77a5ef310c8da5a126f90a21a75520b5d925de Author: Emmanuele Bassi Date: Thu Dec 1 10:39:11 2011 +0000 docs: Fix up the state.set_key() comment clutter/clutter-state.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) commit 1e05e8ceaff25dfb3600cf0798fbca23c1725e12 Author: Jeremy Moles Date: Thu Dec 1 10:36:38 2011 +0000 Adds (allow-none) as source_target for clutter_state_set_key While working through the Python3/pygobject bindings, I came across a missing (allow-none) in clutter_state_set_key(). This allows the API to specify to None as the source_target. https://bugzilla.gnome.org/show_bug.cgi?id=664996 clutter/clutter-state.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 627a1b19771b98864eb9e09a9537128a87dca05e Author: Neil Roberts Date: Mon Nov 28 14:19:28 2011 +0000 effects: Use effect_queue_repaint instead of actor_queue_redraw The builtin effects ClutterColorizeEffect, ClutterDesaturateEffect and ClutterShaderEffect all have properties which only affect the rendering of the final texture not the contents of it. When these properties are updated we should queue a repaint of the effect not the actor so that we don't waste time repainting the contents of the offscreen buffer. https://bugzilla.gnome.org/show_bug.cgi?id=665052 Reviewed-by: Emmanuele Bassi clutter/clutter-colorize-effect.c | 10 +--------- clutter/clutter-desaturate-effect.c | 10 +--------- clutter/clutter-shader-effect.c | 2 +- 3 files changed, 3 insertions(+), 19 deletions(-) commit c687ece72d8d613d8af62615374839b9302abafe Author: Neil Roberts Date: Mon Nov 28 16:27:57 2011 +0000 Fix building with profiling enabled There was an #ifdef'd section of code for profiling that was using the wrong variable name so it would not build. Reviewed-by: Emmanuele Bassi clutter/clutter-main.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit a2774fb0dcce0c92036b69fb75092ec8dc80905d Author: Neil Roberts Date: Mon Nov 28 13:08:57 2011 +0000 offscreen-effect: Track the size of the actor separately Previously the offscreen effect was keeping track of the size of the texture so that it could detect when a different size is requested and create a new texture. However this breaks if a subclass overrides create_texture to make the texture bigger because in that case the size of the texture will always be different from the calculated size of the actor. This patch makes it also track the size of the fbo that was requested before being passed through create_texture() and it instead uses that to detect when a new FBO is needed. https://bugzilla.gnome.org/show_bug.cgi?id=665040 Reviewed-by: Emmanuele Bassi clutter/clutter-offscreen-effect.c | 17 +++++++++++++++-- 1 files changed, 15 insertions(+), 2 deletions(-) commit 3f4bd0d9d4b619d8545a57ee6735eb136dacb1c4 Author: Emmanuele Bassi Date: Sun Nov 27 12:18:49 2011 +0000 conform: Add markers parsing to the timeline unit We should check that the newly added custom parser for timeline markers is working as intended. tests/conform/test-conform-main.c | 1 + tests/conform/test-timeline.c | 40 ++++++++++++++++++++++++++ tests/data/Makefile.am | 1 + tests/data/test-script-timeline-markers.json | 11 +++++++ 4 files changed, 53 insertions(+), 0 deletions(-) commit 24623c43a86fc00f5079994a0969e7689b01317b Author: Emmanuele Bassi Date: Sun Nov 27 12:16:32 2011 +0000 timeline: Add custom parser for "markers" It should be possible to define markers in ClutterScript when describing a ClutterTimeline. The syntax is a trivial: "markers" : [ { "name", , "time" : } ] While at it, we should document it inside the API reference, as well as fleshing out the ClutterTimeline description. clutter/clutter-timeline.c | 262 ++++++++++++++++++++++++++++++++++++++------ 1 files changed, 230 insertions(+), 32 deletions(-) commit 3c35653a0785c2dab5a36bc33ff40301740c46b5 Author: Matej Urbančič Date: Fri Nov 25 21:21:46 2011 +0100 Updated Slovenian translation po/sl.po | 892 +++++++++++++++++++++++++++++++------------------------------ 1 files changed, 453 insertions(+), 439 deletions(-) commit d82bf70d49cedcc345ab8a409a812806ce3a57d6 Author: Bastian Winkler Date: Thu Nov 24 20:14:05 2011 +0100 script: Don't skip introspection for connect_signals_full() To allow language bindings to properly override Script.connect_signals() they'll need access access to Script.connect_signals_full(). Thanks to Jeremy Moles for reporting. clutter/clutter-script.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 49355f3287b0044a76dfea48c1e58375645072f8 Author: Emmanuele Bassi Date: Wed Nov 23 17:29:23 2011 +0000 pc: Fix unexpanded variables PkgConfig doesn't like those. clutter/clutter.pc.in | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit c3b0db226f5a3d1de86cdf028d01dd64e6fa5605 Author: Lucian Adrian Grijincu Date: Tue Nov 22 20:25:02 2011 +0200 Updated Romanian translation po/ro.po | 2262 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 2262 insertions(+), 0 deletions(-) commit 8afeb0e099416132ac8ad5d227aeaf8a9bd1767e Author: Emmanuele Bassi Date: Tue Nov 22 14:08:36 2011 +0000 Post-release version bump to 1.9.3 configure.ac | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)