Emmanuele Bassi [Tue, 20 Dec 2011 14:47:35 +0000 (14:47 +0000)]
tests/interactive: Add a simple test for Actor
It's meant to be xincluded in the API reference.
Emmanuele Bassi [Tue, 20 Dec 2011 14:47:04 +0000 (14:47 +0000)]
actor: Add some debug spew
Emmanuele Bassi [Tue, 20 Dec 2011 13:32:37 +0000 (13:32 +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.
Emmanuele Bassi [Mon, 19 Dec 2011 18:48:02 +0000 (18:48 +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.
Emmanuele Bassi [Mon, 19 Dec 2011 18:01:04 +0000 (18:01 +0000)]
actor: Add remove_all_children()
A simple method for removing all children of an actor in one fell swoop.
Emmanuele Bassi [Mon, 19 Dec 2011 17:34:22 +0000 (17:34 +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.
Emmanuele Bassi [Mon, 19 Dec 2011 14:37:42 +0000 (14:37 +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().
Emmanuele Bassi [Mon, 19 Dec 2011 12:13:23 +0000 (12:13 +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.
Emmanuele Bassi [Mon, 19 Dec 2011 12:04:03 +0000 (12:04 +0000)]
stage: Use the Actor iteration API
Emmanuele Bassi [Mon, 19 Dec 2011 11:53:48 +0000 (11:53 +0000)]
Remove usage of Actor/Container.get_children()
ClutterBox and ClutterGroup are still using the get_children() method
instead of the child iteration API.
Emmanuele Bassi [Mon, 19 Dec 2011 07:20:20 +0000 (07:20 +0000)]
actor: Simplify first/last child updates
Emmanuele Bassi [Sun, 18 Dec 2011 22:35:45 +0000 (22:35 +0000)]
Drop some more ClutterContainer.get_children() uses
Emmanuele Bassi [Sun, 18 Dec 2011 22:34:51 +0000 (22:34 +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.
Emmanuele Bassi [Sun, 18 Dec 2011 22:33:24 +0000 (22:33 +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.
Emmanuele Bassi [Sun, 18 Dec 2011 22:14:36 +0000 (22:14 +0000)]
actor: Add replace_child() method
A simple method that atomically replaces a child actor with another one.
Emmanuele Bassi [Sun, 18 Dec 2011 21:18:27 +0000 (21:18 +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.
Emmanuele Bassi [Sun, 18 Dec 2011 21:09:44 +0000 (21:09 +0000)]
conform/actor-graph: Add lower/raise units
Check that the lower_bottom(), lower(), raise(), and raise_top()
methods work as intended.
Emmanuele Bassi [Sun, 18 Dec 2011 20:59:07 +0000 (20:59 +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.
Emmanuele Bassi [Sun, 18 Dec 2011 20:57:02 +0000 (20:57 +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.
Emmanuele Bassi [Sun, 18 Dec 2011 11:26:29 +0000 (11:26 +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.
Emmanuele Bassi [Sun, 18 Dec 2011 10:29:01 +0000 (10:29 +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.
Emmanuele Bassi [Sun, 18 Dec 2011 10:26:35 +0000 (10:26 +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.
Emmanuele Bassi [Fri, 16 Dec 2011 18:41:38 +0000 (18:41 +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.
Emmanuele Bassi [Mon, 12 Dec 2011 11:57:45 +0000 (11:57 +0000)]
actor: Use a cairo_rectangle_t instead of a ridiculous array
Make the code maintainable and readable.
Emmanuele Bassi [Fri, 9 Dec 2011 17:17:21 +0000 (17:17 +0000)]
actor: Document fields of ClutterActorPrivate
The private data structure members could do with more comments
documenting what they do.
Emmanuele Bassi [Fri, 9 Dec 2011 14:38:25 +0000 (14:38 +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.
Emmanuele Bassi [Thu, 8 Dec 2011 14:33:06 +0000 (14:33 +0000)]
docs: Update the release notes
Emmanuele Bassi [Thu, 8 Dec 2011 10:01:53 +0000 (10:01 +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.
Emmanuele Bassi [Tue, 6 Dec 2011 17:49:27 +0000 (17:49 +0000)]
Deprecate ClutterRectangle
A ClutterActor with a background color set covers 99% of the use cases
for a Rectangle.
Emmanuele Bassi [Tue, 6 Dec 2011 17:33:44 +0000 (17:33 +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.
Emmanuele Bassi [Tue, 6 Dec 2011 17:18:23 +0000 (17:18 +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.
Emmanuele Bassi [Tue, 6 Dec 2011 17:44:04 +0000 (17:44 +0000)]
cally: Do not use Group API
Avoids a deprecation warning.
Emmanuele Bassi [Tue, 6 Dec 2011 16:09:53 +0000 (16:09 +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.
Emmanuele Bassi [Tue, 6 Dec 2011 16:00:49 +0000 (16:00 +0000)]
group: Proxy last few methods to Actor
At this point, ClutterGroup is basically just a shim layer on top of
ClutterActor.
Emmanuele Bassi [Tue, 6 Dec 2011 16:00:08 +0000 (16:00 +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.
Emmanuele Bassi [Mon, 5 Dec 2011 13:08:41 +0000 (13:08 +0000)]
group: Use the default get_paint_volume()
ClutterActor does everything we did, and more.
Emmanuele Bassi [Mon, 5 Dec 2011 12:45:08 +0000 (12:45 +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.
Emmanuele Bassi [Mon, 5 Dec 2011 10:25:42 +0000 (10:25 +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.
Emmanuele Bassi [Mon, 5 Dec 2011 10:19:45 +0000 (10:19 +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.
Emmanuele Bassi [Mon, 5 Dec 2011 08:41:51 +0000 (08:41 +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.
Emmanuele Bassi [Fri, 2 Dec 2011 16:16:26 +0000 (16:16 +0000)]
actor: Cosmetic fixes to internal add/remove child
Avoid code duplication all over the place.
Emmanuele Bassi [Fri, 2 Dec 2011 15:38:25 +0000 (15:38 +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.
Emmanuele Bassi [Fri, 2 Dec 2011 15:36:58 +0000 (15:36 +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.
Emmanuele Bassi [Fri, 2 Dec 2011 14:41:55 +0000 (14:41 +0000)]
actor: Minor cosmetic fixes to the header
Emmanuele Bassi [Fri, 2 Dec 2011 12:12:40 +0000 (12:12 +0000)]
group: Do not override Container
Let ClutterActor do all the work.
Emmanuele Bassi [Fri, 2 Dec 2011 11:51:15 +0000 (11:51 +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.
Emmanuele Bassi [Tue, 29 Nov 2011 18:10:57 +0000 (18:10 +0000)]
actor: Do not leak the layout manager
Emmanuele Bassi [Tue, 29 Nov 2011 18:03:05 +0000 (18:03 +0000)]
box: Drop Container interface overrides
And defer as much as possible to ClutterActor's default implementation
for basically everything.
Emmanuele Bassi [Tue, 29 Nov 2011 18:02:20 +0000 (18:02 +0000)]
actor: Implement Container::sort_depth_order
There's no reason this vfunc should be left out.
Emmanuele Bassi [Tue, 29 Nov 2011 17:41:33 +0000 (17:41 +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).
Emmanuele Bassi [Mon, 28 Nov 2011 17:42:49 +0000 (17:42 +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.
Emmanuele Bassi [Mon, 28 Nov 2011 15:30:52 +0000 (15:30 +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.
Emmanuele Bassi [Fri, 25 Nov 2011 10:27:01 +0000 (10:27 +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.
Emmanuele Bassi [Thu, 24 Nov 2011 14:34:18 +0000 (14:34 +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.
Emmanuele Bassi [Thu, 24 Nov 2011 14:13:29 +0000 (14:13 +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.
Emmanuele Bassi [Thu, 24 Nov 2011 14:11:00 +0000 (14:11 +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.
Emmanuele Bassi [Wed, 23 Nov 2011 18:16:29 +0000 (18:16 +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.
Emmanuele Bassi [Tue, 22 Nov 2011 17:03:00 +0000 (17:03 +0000)]
actor: Clean up property installation
Emmanuele Bassi [Mon, 21 Nov 2011 17:45:32 +0000 (17:45 +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.
Emmanuele Bassi [Mon, 21 Nov 2011 17:24:03 +0000 (17:24 +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.
Emmanuele Bassi [Mon, 21 Nov 2011 14:53:14 +0000 (14:53 +0000)]
actor: Provide Container::raise/lower implementations
Emmanuele Bassi [Mon, 21 Nov 2011 14:52:39 +0000 (14:52 +0000)]
actor: Remove is-a(Container) checks
All actors are now Container implementations, so there's no need to add
a type check.
Emmanuele Bassi [Sun, 20 Nov 2011 22:00:01 +0000 (22:00 +0000)]
actor: Add [xy]-expand properties
Emmanuele Bassi [Thu, 17 Nov 2011 17:26:15 +0000 (17:26 +0000)]
box: Defer to ClutterActor
Use the default implementation inside ClutterActor instead of our own,
wherever possible.
Emmanuele Bassi [Thu, 8 Dec 2011 11:57:19 +0000 (11:57 +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.
Emmanuele Bassi [Thu, 17 Nov 2011 17:07:10 +0000 (17:07 +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.
Emmanuele Bassi [Thu, 17 Nov 2011 16:32:05 +0000 (16:32 +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.
Emmanuele Bassi [Thu, 17 Nov 2011 15:23:05 +0000 (15:23 +0000)]
Do not use set_parent()/unparent() internally
Use add_child()/remove_child() instead.
Emmanuele Bassi [Thu, 17 Nov 2011 15:03:32 +0000 (15:03 +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.
Neil Roberts [Mon, 16 Jan 2012 15:22:43 +0000 (15:22 +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 <robert@linux.intel.com>
Emmanuele Bassi [Fri, 13 Jan 2012 16:21:15 +0000 (16:21 +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.
Fran Diéguez [Sat, 14 Jan 2012 23:19:35 +0000 (00:19 +0100)]
Updated Galician translations
Emmanuele Bassi [Thu, 12 Jan 2012 23:20:59 +0000 (23:20 +0000)]
clutter.modules: Bump json-glib
Emmanuele Bassi [Thu, 12 Jan 2012 13:31:21 +0000 (13:31 +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.
Emmanuele Bassi [Thu, 12 Jan 2012 10:49:16 +0000 (10:49 +0000)]
gesture-action: Protect against NULL pointers
Emmanuele Bassi [Thu, 12 Jan 2012 10:49:02 +0000 (10:49 +0000)]
gesture-action: Use the event propagation macros
Emmanuele Bassi [Thu, 12 Jan 2012 10:44:28 +0000 (10:44 +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.
Emmanuele Bassi [Thu, 12 Jan 2012 10:40:38 +0000 (10:40 +0000)]
text: Use the event and source symbolic macros
Instead of boolean values.
Emmanuele Bassi [Thu, 12 Jan 2012 10:39:59 +0000 (10:39 +0000)]
drop-action: Use the event propagation macros
Emmanuele Bassi [Thu, 12 Jan 2012 10:34:50 +0000 (10:34 +0000)]
drag-action: Use the new event propagation macros
Emmanuele Bassi [Thu, 12 Jan 2012 10:34:26 +0000 (10:34 +0000)]
deform-effect: Check against NULL pointers
Do not try to disconnect signal handlers from NULL pointers.
Emmanuele Bassi [Thu, 12 Jan 2012 10:27:17 +0000 (10:27 +0000)]
click-action: Use the new symbolic event propagation macros
Emmanuele Bassi [Thu, 12 Jan 2012 10:26:47 +0000 (10:26 +0000)]
click-action: Be resilient against NULL pointers
Do not try to disconnect signal handlers from NULL pointers.
Emmanuele Bassi [Thu, 12 Jan 2012 10:17:01 +0000 (10:17 +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.
Emmanuele Bassi [Thu, 12 Jan 2012 10:10:09 +0000 (10:10 +0000)]
build: Fix the private pkg-config requirements
Private pkg-config requirements are conditional.
Rob Bradford [Wed, 11 Jan 2012 12:26:00 +0000 (12:26 +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.
Rob Bradford [Wed, 11 Jan 2012 12:23:46 +0000 (12:23 +0000)]
build: Add infrastructure for inserting Requires.private into pkg-config files
Rob Bradford [Tue, 10 Jan 2012 17:25:35 +0000 (17:25 +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.
Rob Bradford [Tue, 10 Jan 2012 16:40:59 +0000 (16:40 +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+.
Ryan Lortie [Mon, 9 Jan 2012 15:04:08 +0000 (16:04 +0100)]
Prevent .po file updates on simple 'make'
https://bugzilla.gnome.org/show_bug.cgi?id=661128
Alexander Shopov [Sun, 8 Jan 2012 12:30:48 +0000 (14:30 +0200)]
Updated Bulgarian translation
Emmanuele Bassi [Sat, 7 Jan 2012 10:41:25 +0000 (10:41 +0000)]
osx: Use Lucida Grande as the default font
Instead of falling back to the generic "Sans".
Emmanuele Bassi [Fri, 6 Jan 2012 14:04:43 +0000 (14:04 +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.
Emmanuele Bassi [Fri, 6 Jan 2012 14:02:54 +0000 (14:02 +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.
Emmanuele Bassi [Tue, 3 Jan 2012 14:38:56 +0000 (14:38 +0000)]
docs: Add event propagation symbolic constants
Emmanuele Bassi [Tue, 3 Jan 2012 14:00:40 +0000 (14:00 +0000)]
configure: Clean up help and configuration summary
Emmanuele Bassi [Tue, 3 Jan 2012 13:50:06 +0000 (13:50 +0000)]
Move Perspective and Fog definitions to clutter-types.h
Since we reference the types from multiple files.
Emmanuele Bassi [Tue, 3 Jan 2012 12:10:28 +0000 (12:10 +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.
Emmanuele Bassi [Tue, 20 Dec 2011 12:28:06 +0000 (12:28 +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.
Emmanuele Bassi [Fri, 30 Dec 2011 10:34:54 +0000 (10:34 +0000)]
docs: Update the release notes