Emmanuele Bassi [Wed, 25 Apr 2012 14:49:28 +0000 (15:49 +0100)]
docs: Clean up index
Move CairoTexture to the deprecated section.
Emmanuele Bassi [Wed, 25 Apr 2012 14:48:10 +0000 (15:48 +0100)]
docs: Add ScrollActor to the API reference
Emmanuele Bassi [Thu, 12 Apr 2012 14:56:53 +0000 (15:56 +0100)]
Add ClutterScrollActor
ClutterScrollActor is an actor that allows showing a portion of its
contents.
Emmanuele Bassi [Fri, 20 Apr 2012 17:23:21 +0000 (18:23 +0100)]
interactive/table-layout: Enable animations
Emmanuele Bassi [Fri, 20 Apr 2012 17:14:42 +0000 (18:14 +0100)]
layout-manager: Deprecate the layout animation
This semi-aborted API was broken for various reasons:
- it strongly depended on ClutterAlpha, a class we're trying to
deprecate;
- it requires a lot of boilerplate and copy-and-paste code;
- it requires a full relayout of the actor tree for something
that ought to be automatically handled by ClutterActor.
Now that clutter_actor_allocate() handles transitions using the easing
state of the actor, we can deprecate the LayoutManager API for the 1.x
series, and remove it for the 2.x series.
Emmanuele Bassi [Fri, 20 Apr 2012 17:14:00 +0000 (18:14 +0100)]
table-layout: Deprecate the animation API
Similar to what we did for ClutterBoxLayout.
Emmanuele Bassi [Fri, 20 Apr 2012 17:11:57 +0000 (18:11 +0100)]
box-layout: Deprecate the animation API
BoxLayout will use the easing state of the children it's allocating; the
current API is re-implemented in terms of an implicit easing state
forced on each child prior to allocating it.
Emmanuele Bassi [Fri, 20 Apr 2012 17:06:02 +0000 (18:06 +0100)]
actor: Make :allocation animatable
Calling clutter_actor_allocate() should transition between the current
allocation and the new allocation, by using the defined implementation
of the easing state.
This means that:
clutter_actor_save_easing_state (actor);
clutter_actor_allocate (actor, &new_alloc, flags);
clutter_actor_restore_easing_state (actor);
will cause "actor" to transition between the current allocation and the
desired new allocation.
The trick is to ensure that this happens without invalidating the
entire actor tree, but only the portion of the tree that has the
transitioned actor as the local root. For this reason, we just call the
allocate() implementation from within the transition frame advancement,
without invalidating flags: the actor, after all, *has* a valid
allocation for the duration of the transition.
Emmanuele Bassi [Mon, 23 Apr 2012 11:28:23 +0000 (12:28 +0100)]
actor: Ignore allocation flags
Allocation flags are informative, and are only meant to be used to
communicate additional information about the allocation process to
an actor.
Emmanuele Bassi [Fri, 20 Apr 2012 11:45:54 +0000 (12:45 +0100)]
actor: Coalesce needs_[xy]_expand() into one method
Use the orientation enumeration instead of a per-axis method.
Emmanuele Bassi [Tue, 27 Mar 2012 16:08:59 +0000 (17:08 +0100)]
box-layout: Add the :orientation property
And deprecate the :vertical property.
An enumeration is clearer, and we can use it elsewhere in the API.
Emmanuele Bassi [Thu, 29 Mar 2012 16:27:34 +0000 (17:27 +0100)]
bin-layout: Deprecate BinLayout alignments
We should use the ClutterActor's API for this.
Emmanuele Bassi [Thu, 29 Mar 2012 16:20:45 +0000 (17:20 +0100)]
docs: XInclude the bin layout example
Emmanuele Bassi [Thu, 29 Mar 2012 15:35:22 +0000 (16:35 +0100)]
interactive/bin-layout: Improve the example code
Use modern API; clean up the code, and document it so that it's possible
to XInclude it into the API reference.
Emmanuele Bassi [Thu, 29 Mar 2012 15:34:36 +0000 (16:34 +0100)]
bin-layout: Use the actor align/expand flags
If an actor is set to expand, we use the actor's horizontal and vertical
alignment values instead of the BinLayout's.
Emmanuele Bassi [Thu, 29 Mar 2012 15:33:53 +0000 (16:33 +0100)]
actor: Add private get_effective_x_align() method
A method to retrieve the effective horizontal alignment of the actor,
taking into consideration the text direction.
Emmanuele Bassi [Tue, 27 Mar 2012 13:53:27 +0000 (14:53 +0100)]
actor: Add basic automatic expand flags
The :x-expand and :y-expand flags on ClutterActor are used to signal
that an actor should expand horizontally and/or vertically - i.e. that
its parent's layout management policy should try to assign extra space
to the actor when allocating it.
The expand flags are automatic: when set on a leaf node in the actor
tree, they will bubble up through the parent and grandparents up to the
top level actor; during allocation, the actors with children will lazily
compute whether their children needs to expand.
Emmanuele Bassi [Thu, 19 Apr 2012 15:35:39 +0000 (16:35 +0100)]
actor: Remove automatic transition init from add_transition()
Adding an explicit transition overrides any consideration of the easing
state of an actor.
Emmanuele Bassi [Thu, 19 Apr 2012 15:00:23 +0000 (16:00 +0100)]
Fixes for the API reference
Typos, missing symbols, and missing documentation.
Emmanuele Bassi [Wed, 11 Apr 2012 17:31:53 +0000 (18:31 +0100)]
docs: Clean up the animation section
Emmanuele Bassi [Wed, 11 Apr 2012 17:30:40 +0000 (18:30 +0100)]
Add deprecation annotations
Emmanuele Bassi [Wed, 11 Apr 2012 17:18:27 +0000 (18:18 +0100)]
Deprecate ClutterAnimation, as well as clutter_actor_animate()
ClutterPropertyTransition, and the implicit animation API based on
ClutterTransition and ClutterAnimatable, are enough to replace this
whole API.
Emmanuele Bassi [Wed, 11 Apr 2012 17:00:23 +0000 (18:00 +0100)]
Deprecate State and Animator
The PropertyTransition, KeyframeTransition, and TransitionGroup classes
can effectively replace Animator and State in their common usage.
Emmanuele Bassi [Wed, 11 Apr 2012 16:47:53 +0000 (17:47 +0100)]
keyframe-transition: Add direct accessors for key frames
This should allow modifying key frame details without requiring a full
reset of the KeyframeTransition instance.
Emmanuele Bassi [Tue, 20 Mar 2012 10:59:34 +0000 (10:59 +0000)]
Add ClutterTransitionGroup
The TransitionGroup class is a logical container for running multiple
transitions.
TransitionGroup is not a Score: it is a Transition that advances each
Transition it contains using the delta between frames, and ensures that
all transitions are in a consistent state; these transitions are not
advanced by the master clock.
Emmanuele Bassi [Wed, 21 Mar 2012 16:07:29 +0000 (16:07 +0000)]
timeline: Add an internal function for advancing a timeline
There are cases when we want to advance a timeline from another time
source. We cannot use _clutter_timeline_do_tick() directly, as that
assumes that the timeline is already playing, so we'll need to create a
wrapper that toggles the playing flag around it.
Emmanuele Bassi [Wed, 11 Apr 2012 14:53:52 +0000 (15:53 +0100)]
Add ClutterKeyframeTransition
A simple transition class that interpolates a property between key
frames.
Emmanuele Bassi [Wed, 11 Apr 2012 13:18:56 +0000 (14:18 +0100)]
interval: Allow passing NULL values to the constructor
Given that we can create a ClutterInterval without an initial and final
values using g_object_new(), it stands to reason that we ought to be
able to create an instance when passing NULL GValue pointers to the
new_with_values() constructor as well.
Emmanuele Bassi [Wed, 11 Apr 2012 13:11:28 +0000 (14:11 +0100)]
easing: Add utility functions
We end up copying the same array-of-modes-and-functions code in various
places, so it's better to factor it out.
Emmanuele Bassi [Wed, 11 Apr 2012 13:10:40 +0000 (14:10 +0100)]
actor: Make add_transition() work regardless of easing state
We can add transitions to an actor even if the easing state hasn't been
set beforehand.
Emmanuele Bassi [Thu, 22 Mar 2012 10:48:02 +0000 (10:48 +0000)]
docs: Use the Transition convenience API
Emmanuele Bassi [Thu, 22 Mar 2012 10:08:48 +0000 (10:08 +0000)]
transition: Add interval convenience API
This should cut down the lines and number of objects we have to care
about when dealing with explicit transitions.
Emmanuele Bassi [Thu, 19 Apr 2012 13:55:08 +0000 (14:55 +0100)]
docs: Add a reference section for geometric types
Emmanuele Bassi [Thu, 19 Apr 2012 11:34:02 +0000 (12:34 +0100)]
Add version annotation for newly added functions
Emmanuele Bassi [Thu, 19 Apr 2012 11:32:07 +0000 (12:32 +0100)]
Add a rect-contains-rect function
Similar to the contains-point one.
Emmanuele Bassi [Thu, 19 Apr 2012 11:30:45 +0000 (12:30 +0100)]
Use an epsilon for float comparison
We tend to use float comparison for structured data types like Vertex,
Point, and Size; we should take into consideration fluctuations in the
floating point representation as well.
Emmanuele Bassi [Thu, 19 Apr 2012 11:16:54 +0000 (12:16 +0100)]
event: Add distance and angle accessors
Let's start using ClutterPoint in the API.
Emmanuele Bassi [Thu, 19 Apr 2012 11:15:17 +0000 (12:15 +0100)]
Add a function to compute the distance between points
Emmanuele Bassi [Wed, 18 Apr 2012 16:31:28 +0000 (17:31 +0100)]
Move towards an alloc/init pair for base types
Instead of a single new() constructor that both allocates and
initializes, split the allocation and initialization into two separate
functions for types that are typically used on the stack, and rarely
allocated on the heap, like ClutterPoint and friends.
This is also applied retroactively to ClutterActorBox and ClutterVertex,
given that the same considerations on usage apply to them as well; we
can add a return value to clutter_actor_box_init() and
clutter_vertex_init() in an ABI-compatible way, so that
clutter_actor_box_new() and clutter_vertex_new() can be effectively
reimplemented as "init (alloc ())".
Emmanuele Bassi [Fri, 13 Apr 2012 10:26:38 +0000 (11:26 +0100)]
color: Add initializers for ClutterColor
Similar to the ones we have for the other boxed types in Clutter.
Emmanuele Bassi [Sun, 1 Apr 2012 16:54:11 +0000 (17:54 +0100)]
script: Support ClutterPoint and ClutterSize
Point and Size can be described both as an array of values or as an
object.
Emmanuele Bassi [Sun, 1 Apr 2012 16:32:59 +0000 (17:32 +0100)]
actor: Add position and size animatable properties
Using a compound type property for position and size has various
advantages: it reduces the amount of checks; it reduces the amount
of notify signals to connect to; it reduces the amount of transitions
generated.
Emmanuele Bassi [Fri, 30 Mar 2012 17:53:22 +0000 (18:53 +0100)]
actor: Use ClutterSize for minimum and natural fixed sizes
Emmanuele Bassi [Fri, 30 Mar 2012 17:43:59 +0000 (18:43 +0100)]
actor: Use ClutterPoint for the fixed position
Emmanuele Bassi [Fri, 30 Mar 2012 17:22:04 +0000 (18:22 +0100)]
Add base geometric types
Clutter should provide some more basic geometric types - Point, Size,
Rect - so that we can use them in properties and accessors.
Emmanuele Bassi [Fri, 30 Mar 2012 12:56:18 +0000 (13:56 +0100)]
Move the progress function registration to clutter-types.h
Near the definition of ClutterProgressFunc.
Emmanuele Bassi [Tue, 17 Apr 2012 17:40:43 +0000 (18:40 +0100)]
Deprecate ClutterCairoTexture
The ClutterCanvas content implementation should be used instead, to
avoid stringing along the ClutterTexture API and implementation.
This change requires some minor surgery, as the deprecated section
already contains an header for the previously deprecated methods; plus,
we don't want to deprecate clutter_cairo_set_source_color(). This means
creating a new header to be used for Cairo-related API.
Emmanuele Bassi [Mon, 23 Apr 2012 16:42:40 +0000 (17:42 +0100)]
path: Avoid integer overflow in get_distance()
The get_distance() API uses machine integers to compute the distance;
this means that on 32bit we can overflow the integer size. This gets
hidden by the fact that get_distance() returns an unsigned integer as
well.
In reality, ClutterPath is an unmitigated mess, and the only way to
actually fix it is to break API.
https://bugzilla.gnome.org/show_bug.cgi?id=652521
Alejandro Piñeiro [Wed, 4 Apr 2012 10:07:06 +0000 (12:07 +0200)]
a11y: stop to use text as the default accessible-name for ClutterText
https://bugzilla.gnome.org/show_bug.cgi?id=672994
Emmanuele Bassi [Thu, 26 Apr 2012 15:59:08 +0000 (16:59 +0100)]
media: Define CLUTTER_DISABLE_DEPRECATION_WARNINGS
We know we're building deprecated API.
Emmanuele Bassi [Thu, 26 Apr 2012 15:58:23 +0000 (16:58 +0100)]
macros: Define MIN_REQUIRED as the current version
Otherwise we'll not warn on deprecations introduced in the current
development cycle.
Emmanuele Bassi [Thu, 26 Apr 2012 13:06:00 +0000 (14:06 +0100)]
actor: Call show() on set parent conditionally
This commit adds a further conditional check for calling
clutter_actor_show() when adding a child to an actor. We cannot
unconditionally change the value of the show-on-set-parent property like
the original solution of commit
81b19a78f5e02ae8ffd9235054d80b172496415b
as that breaks the document invariant that show-on-set-parent will be
changed iff an actor is without a parent.
The new ADD_CHILD_SHOW_ON_SET_PARENT flag is part of the default and
legacy flags, thus retaining the default behaviour when adding a child;
the flag is not passed when reordering the list of children, which means
we ignore the state of the show-on-set-parent property.
The conformance test suite fully passes, including the newly added test
to verify that changing the paint order does not trigger visibility.
https://bugzilla.gnome.org/show_bug.cgi?id=674510
Emmanuele Bassi [Thu, 26 Apr 2012 13:02:07 +0000 (14:02 +0100)]
Revert "actor: Unconditionally set show_on_set_parent"
This reverts commit
81b19a78f5e02ae8ffd9235054d80b172496415b.
The commit breaks the conformance test unit for the invariants we
guarantee for the 1.x API:
ERROR:actor-invariants.c:307:actor_show_on_set_parent: assertion failed: (show_on_set_parent)
Emmanuele Bassi [Thu, 26 Apr 2012 12:58:06 +0000 (13:58 +0100)]
docs: Add the 1.12 symbols index to the API reference
Emmanuele Bassi [Thu, 26 Apr 2012 12:23:29 +0000 (13:23 +0100)]
Be resilient in case there is no device manager
It's possible to run Clutter with the 'null' input backend, which means
that clutter_device_manager_get_default() may return NULL. In the future
we may add a default dummy device manager, but right now it's safer to
just add a simple NULL check in the places where we ask for the device
manager.
Neil Roberts [Fri, 20 Apr 2012 17:40:31 +0000 (18:40 +0100)]
Remove calls to cogl_disable_fog
I can't think of any reason why it would do this and there's no
comment explaining it so let's just remove it. The global fog state
has been removed in Cogl 2.0 so it will cause problems later.
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
Neil Roberts [Fri, 20 Apr 2012 16:11:47 +0000 (17:11 +0100)]
clutter-stage-cogl: Use CoglPrimitive for the debug redraw code
CoglVertexBuffer is deprecated so here is a fairly simple replacement
to use the experimental CoglPrimitive API.
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
Cosimo Cecchi [Tue, 24 Apr 2012 14:21:25 +0000 (10:21 -0400)]
device-manager: select/unselect device events as device change
When a device is added or changes, select/unselect events from X
accordingly.
https://bugzilla.gnome.org/show_bug.cgi?id=673644
Cosimo Cecchi [Tue, 24 Apr 2012 00:04:58 +0000 (20:04 -0400)]
device-manager: don't select events for disabled devices
I.e. only select events for core devices or devices explicitly enabled
by clients.
https://bugzilla.gnome.org/show_bug.cgi?id=673644
Jasper St. Pierre [Mon, 23 Apr 2012 18:14:07 +0000 (14:14 -0400)]
conform: Make sure that raising/lowering children doesn't change state
Namely, visibility and show-on-set-parent.
https://bugzilla.gnome.org/show_bug.cgi?id=674510
Jasper St. Pierre [Fri, 20 Apr 2012 23:54:05 +0000 (19:54 -0400)]
actor: Unconditionally set show_on_set_parent
Otherwise, doing something like adjusting the child's position
on a hidden actor will re-show it, which is not what we want.
https://bugzilla.gnome.org/show_bug.cgi?id=674510
Jasper St. Pierre [Fri, 13 Apr 2012 18:34:22 +0000 (14:34 -0400)]
actor: Not-actors don't have metas
Emmanuele Bassi [Sun, 15 Apr 2012 12:02:42 +0000 (13:02 +0100)]
cally: Fix the pkg-config file
Drop a bunch of variables that are not meant to be used by Cally; also,
drop the wrong library name from the Libs key: Clutter has a single
shared library, now.
https://bugzilla.gnome.org/show_bug.cgi?id=674105
Cosimo Cecchi [Fri, 20 Apr 2012 17:31:58 +0000 (18:31 +0100)]
x11/device-manager-xi2: Flip deltas around
Up/down is Y.
Piotr Drąg [Tue, 17 Apr 2012 17:52:47 +0000 (19:52 +0200)]
Updated POTFILES.in
Emmanuele Bassi [Tue, 17 Apr 2012 17:10:39 +0000 (18:10 +0100)]
Deprecate ClutterMedia
The interface looked like a good idea around the time Clutter 0.2 was
out, but in reality we never had a proper, and supported implementation
outside of clutter-gst - thus, ClutterMedia was acting like a wrapper
around GStreamer, leading to hilarious issues of impedence mismatch
between API and all sorts of indirection issues typical of wrong
abstractions.
In theory, ClutterMedia should have been deprecated and removed before
we hit 1.0, but we kept flip-flopping on the issue.
For 2.0, it's time to take it out.
And shoot it in the face.
Jasper St. Pierre [Fri, 30 Mar 2012 15:19:02 +0000 (11:19 -0400)]
text: Bubble up a click and quit early for just static text
Static text shouldn't need a cursor position or anything like that,
and it always eats a button press event.
https://bugzilla.gnome.org/show_bug.cgi?id=673190
Christian Kirbach [Fri, 13 Apr 2012 17:46:47 +0000 (19:46 +0200)]
[l10n] Updated German translation
Emmanuele Bassi [Thu, 12 Apr 2012 16:24:37 +0000 (17:24 +0100)]
actor: Return a valid paint volume by default
It's been a year and change, and two stable releases, since we
introduced the paint volume mechanism to allow actors to paint outside
their allocation safely in environments that support clipped redraws.
The time has come to flip the switch, and return a valid paint volume,
matching the actor's allocation, by default - at least for Actor
instances from classes that do not override paint() and
get_paint_volume().
If an actor has a paint signal handler then it's the user responsability
not to paint outside the allocation - and to suffer the consequences of
doing so; in an ideal world, paint() would not be a signal in the first
place anyway. Plus, the idea that painting can happen at any time and
still have a valid surface greatly conflicts with the design goal of
making Clutter's rendering operations fully retained into a render tree.
We can still revert this commit before spinning 1.12, if need be.
Emmanuele Bassi [Thu, 12 Apr 2012 16:08:33 +0000 (17:08 +0100)]
interactive/snap-constaint: Modernize code
Emmanuele Bassi [Thu, 12 Apr 2012 16:07:06 +0000 (17:07 +0100)]
actor: Check for mapped children in the default get_paint_volume()
Unmapped children won't be painted so they should not contribute to the
default paint volume computation.
Emmanuele Bassi [Thu, 12 Apr 2012 16:04:57 +0000 (17:04 +0100)]
actor: Clear MetaGroups when empty
When removing the last Action, Constraint, or Effect, we should also be
clearing the corresponding MetaGroup: code inside ClutterActor relies on
NULL checks, and changing them all to check for NULL && n_items == 0
would not be fun.
Peter Hutterer [Thu, 12 Apr 2012 03:07:34 +0000 (13:07 +1000)]
Rename XINPUT_2_2 define to HAVE_XINPUT_2_2
configure.ac defines XINPUT_2_2 if XI 2.2 support was found. The code
expects XINPUT_2_2 in the device manager, but HAVE_XINPUT_2_2 in the x11
backend.
On newer X servers, the latter causes a BadValue when XIQueryDevice sends a
different major/minor than gdk's device manager (gnome-control-center).
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
https://bugzilla.gnome.org/show_bug.cgi?id=673961
Emmanuele Bassi [Wed, 11 Apr 2012 12:57:06 +0000 (13:57 +0100)]
actor: Fix completed transitions logic
We need to remove the transition only if the current repeat is equal to
the number of repeats, and if the transition was marked as remove on
complete. Otherwise, the transition has to remain where it is.
Rob Bradford [Wed, 11 Apr 2012 10:56:11 +0000 (11:56 +0100)]
build: Bump pango dependency to 1.30
Clutter now uses pango_layout_get_character_count() which was added in 1.30.
Carles Ferrando [Tue, 10 Apr 2012 18:56:50 +0000 (20:56 +0200)]
[l10n]Updated Catalan (Valencian) translation
Jordi Serratosa [Tue, 10 Apr 2012 18:56:46 +0000 (20:56 +0200)]
[l10n] Fixes on Catalan translation
Emmanuele Bassi [Tue, 10 Apr 2012 12:37:04 +0000 (13:37 +0100)]
actor: Remove unnecessary relayout/redraw calls
They will be handled internally.
Emmanuele Bassi [Tue, 10 Apr 2012 11:58:17 +0000 (12:58 +0100)]
actor: Do not queue_redraw() in set_opacity()
The opacity internal setter will do it for us, and it will take into
consideration any eventual flatten effect applied to the actor.
This unbreaks the actor-offscreen-redirect conformance test.
Emmanuele Bassi [Tue, 10 Apr 2012 11:34:54 +0000 (12:34 +0100)]
x11/stage: Leave a comment about multi-head setup
The get_geometry() implementation is broken on multi-head systems; the
only solution is to use XRandR to get the size of the CRTC that contains
the stage.
Emmanuele Bassi [Tue, 10 Apr 2012 11:12:50 +0000 (12:12 +0100)]
stage: Unset the natural size when fullscreening
This ensures that constraints and signal handlers will go through the
allocation and not through the cache after ::fullscreen has been
emitted.
Emmanuele Bassi [Tue, 10 Apr 2012 11:12:28 +0000 (12:12 +0100)]
interactive/stage-sizing: Clean up
Emmanuele Bassi [Mon, 9 Apr 2012 10:56:26 +0000 (11:56 +0100)]
x11/device-manager-xi2: Add 'Abs Distance' axis
In XInput 2, the proximity events of XInput 1 have been replaced by an
axis on a valuator class. This means that, on devices that support
proximity information, for instance pens of a tablet, you will start
receiving events with the distance as an axis value - similarly to how
the pressure and tilt are presented in the API.
Emmanuele Bassi [Mon, 9 Apr 2012 10:56:01 +0000 (11:56 +0100)]
enums: Add CLUTTER_INPUT_AXIS_DISTANCE
Owen W. Taylor [Mon, 9 Apr 2012 16:09:59 +0000 (12:09 -0400)]
ClutterText: Fix length passed to clutter_text_buffer_set_text()
clutter_text_buffer_set_text() expects a char count, not a byte
count, so pass -1 rather than using strlen.
https://bugzilla.gnome.org/show_bug.cgi?id=673783
Emmanuele Bassi [Sat, 7 Apr 2012 22:07:59 +0000 (23:07 +0100)]
x11/device-manager-xi2: Remove heuristics for touchscreen devices
Devices that have touch valuator classes will be touchscreens or
touchpads; anything else should be ignored.
Emmanuele Bassi [Wed, 4 Apr 2012 14:33:32 +0000 (15:33 +0100)]
osx: Fix build
Emmanuele Bassi [Wed, 4 Apr 2012 14:33:05 +0000 (15:33 +0100)]
build: Remove -Waggregate-returns
Daniel Nylander [Sun, 1 Apr 2012 18:31:08 +0000 (20:31 +0200)]
Updated Swedish translation
Emmanuele Bassi [Thu, 29 Mar 2012 14:52:51 +0000 (15:52 +0100)]
actor: Make _clutter_actor_foreach_child() safe again
We were using g_list_foreach() prior to the first Apocalypse, and that
function is resilient against changes to the list while iterating it;
since we are not using a GList any more, we need handle this case
ourselves.
Emmanuele Bassi [Thu, 29 Mar 2012 14:12:09 +0000 (15:12 +0100)]
interactive/bin-layout: Call save/restore easing state
Don't do unprotected calls to set_easing_mode() and
set_easing_duration().
Emmanuele Bassi [Thu, 29 Mar 2012 12:53:40 +0000 (13:53 +0100)]
actor: Make :content-gravity animatable
Let's start making some non-trivial property animatable, like the
content gravity.
Stefano Facchini [Thu, 29 Mar 2012 12:35:50 +0000 (14:35 +0200)]
canvas: avoid emission of "draw" signal when the size is zero
This also avoids the warning
Cogl-WARNING **: ./cogl-buffer.c:215: GL error (1285): Out of memory
generated by cogl_buffer_map when the CoglBuffer has zero length.
Emmanuele Bassi [Thu, 29 Mar 2012 11:01:03 +0000 (12:01 +0100)]
actor: Ensure that we correctly remove transitions
The check on :remove-on-complete was inverted, but we also need to check
that the current repeat of the timeline is also the last.
Emmanuele Bassi [Wed, 28 Mar 2012 17:07:06 +0000 (18:07 +0100)]
actor: Minor optimization to avoid get_preferred_*
When the easing state has a duration of zero milliseconds we can skip
the entire create_transition() call inside set_width() and set_height(),
to avoid what may be a costly call to get_preferred_*.
Emmanuele Bassi [Wed, 28 Mar 2012 15:39:30 +0000 (16:39 +0100)]
actor: Ensure we use the current easing duration and mode
When updating a transition in flight, if the current easing state does
not match the transition's.
Emmanuele Bassi [Wed, 28 Mar 2012 12:21:58 +0000 (13:21 +0100)]
docs: Mention in-flight value changes
Emmanuele Bassi [Wed, 28 Mar 2012 12:01:17 +0000 (13:01 +0100)]
interactive/animation: Use implicit animations instead of animate()
Also, nest animations.
Emmanuele Bassi [Wed, 28 Mar 2012 11:46:30 +0000 (12:46 +0100)]
interactive/transitions: Jump to middle-click coordinates
Middle click will update an existing transition while in flight, and
skip it.
Emmanuele Bassi [Wed, 28 Mar 2012 11:43:57 +0000 (12:43 +0100)]
actor: Check easing duration when updating in-flight transitions
If we update a transition that is currently playing, we need to check
the current easing state, and look at the eventual duration, in case
the user wants to cancel the transition.