Fran Diéguez [Tue, 21 Feb 2012 10:38:18 +0000 (11:38 +0100)]
Updated Galician translations
Alexander Shopov [Tue, 21 Feb 2012 08:22:48 +0000 (10:22 +0200)]
Updated Bulgarian translation
Kenneth Nielsen [Mon, 20 Feb 2012 21:55:26 +0000 (22:55 +0100)]
Updated Danish translation
Kasia Bondarava [Fri, 17 Feb 2012 22:04:55 +0000 (00:04 +0200)]
Updated Belarusian translation
Stefano Facchini [Sun, 19 Feb 2012 16:56:12 +0000 (17:56 +0100)]
clutter-drop-action: annotation fixes for some signals
https://bugzilla.gnome.org/show_bug.cgi?id=670433
Aurimas Černius [Fri, 17 Feb 2012 22:04:55 +0000 (00:04 +0200)]
Updated Lithuanian translation
Andrej Žnidaršič [Wed, 15 Feb 2012 19:56:43 +0000 (20:56 +0100)]
Updated Slovenian translation
Alejandro Piñeiro [Wed, 15 Feb 2012 18:09:04 +0000 (19:09 +0100)]
a11y: remove Container explanation
That explanation is outdated after the last changes on clutter
Alejandro Piñeiro [Thu, 9 Feb 2012 11:32:44 +0000 (12:32 +0100)]
a11y: proper ATK role for ClutterStage
ATK_ROLE_CANVAS is not a suitable role, as the user (in general) can't
draw on the Stage. CallyStage implements AtkWindow, so the proper role
is ATK_ROLE_WINDOW
Alejandro Piñeiro [Wed, 8 Feb 2012 17:46:11 +0000 (18:46 +0100)]
a11y: redoing focus stuff
Removing atkcomponent, focus_tracker, etc. Emitting focus state change
from the stage. Now things are more simple, and stop to use some
of the soon-to-be-deprecated signals on ATK.
Emmanuele Bassi [Wed, 15 Feb 2012 17:43:31 +0000 (17:43 +0000)]
docs: Note when new ClutterBindCoordinate values were added
The shorthands for position and size were added in 1.6.
Emmanuele Bassi [Wed, 15 Feb 2012 15:58:36 +0000 (15:58 +0000)]
interactive/layout: Update to modern API
No need to override Container. Actually, no need to use the Container
API at all. This also removes a bunch of leaks.
Adel Gadllah [Wed, 15 Feb 2012 16:54:45 +0000 (17:54 +0100)]
ClutterBindConstraint: Add CLUTTER_BIND_ALL coordinate
Add a CLUTTER_BIND_ALL that binds both size and position.
Emmanuele Bassi [Wed, 15 Feb 2012 14:20:59 +0000 (14:20 +0000)]
x11/stage: Allow setting fullscreen hint before realize
It should be possible to do:
clutter_stage_set_fullscreen (stage, TRUE);
clutter_actor_show (stage);
and have the stage be full screen as soon as it is shown.
Currently, we need to call clutter_actor_realize() prior to calling
set_fullscreen(), otherwise the backing X window will not be set,
and ClutterStageX11 will silently discard the change.
If set_fullscreen() was called prior to realization, ClutterStageX11
should delay setting the fullscreen hint until the realize() chain
has been successfully executed.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2515
Emmanuele Bassi [Wed, 15 Feb 2012 13:43:15 +0000 (13:43 +0000)]
conform/invariants: Clean up
Use modern API, and add a minimal check that hiding an actor will cause
it to unmap.
Daniel Mustieles [Wed, 15 Feb 2012 11:59:01 +0000 (12:59 +0100)]
Updated Spanish translation
Lionel Landwerlin [Tue, 24 Jan 2012 12:45:52 +0000 (12:45 +0000)]
x11: adjust size to minimal size when realizing
If you execute the following sequence :
stage = clutter_stage_new ();
clutter_actor_set_size (stage, 1280, 800);
clutter_actor_realize (stage);
Then you end up creating an onscreen buffer of size 1280x800 but
ClutterStageX11 storing the stage size at 640x480.
This patch resync the 2 implementation by using the ClutterStage's
size in both classes when realizing.
Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com>
https://bugzilla.gnome.org/show_bug.cgi?id=667540
Emmanuele Bassi [Wed, 15 Feb 2012 09:30:18 +0000 (09:30 +0000)]
effects: Delay the creation of the base pipeline
Unconditionally creating CoglPipeline and CoglSnippets inside the class
initialization functions does not seem to be enough when dealing with
headless builds.
Our last resort is to lazily create the base pipeline the first time we
try to copy it, during the instance initialization.
Мирослав Николић [Wed, 15 Feb 2012 09:17:45 +0000 (10:17 +0100)]
Updated Serbian translation
Jasper St. Pierre [Tue, 14 Feb 2012 20:43:38 +0000 (15:43 -0500)]
actor: Correct get_paint_volume for an actor with no children and no clip
We do not need to repaint the entire stage if an actor has no children
and no clip.
Jasper St. Pierre [Tue, 14 Feb 2012 21:17:07 +0000 (16:17 -0500)]
clutter.symbols: Fix up symbols
Emmanuele Bassi [Tue, 14 Feb 2012 17:14:25 +0000 (17:14 +0000)]
Do not check for features inside class initialization
The class initialization function may be called when Clutter hasn't been
fully initialized — for instance, when scanning the source with gtk-doc
or with the introspection scanner.
Emmanuele Bassi [Tue, 14 Feb 2012 16:50:52 +0000 (16:50 +0000)]
interactive/actor: Add more animations
Rotation along the Y axis and depth change.
Emmanuele Bassi [Tue, 14 Feb 2012 15:48:15 +0000 (15:48 +0000)]
interactive/actor: Use a BoxLayout
As it was intended.
Emmanuele Bassi [Tue, 14 Feb 2012 15:39:15 +0000 (15:39 +0000)]
box-layout: Fix allocation brain farts
The allocation code for BoxLayout contains a sequence of brain farts
that make it barely working since the synchronization of the layout
algorithm to the one in GtkBox.
The origin of the layout is inverted, and it doesn't take into
consideration a modified allocation origin (for actors the provide
padding or margin).
The pack-start property is broken, and it only works because we walk the
children list backwards; this horribly breaks when a child changes
visibility. Plus, we count invisible children, which leads to
allocations getting insane origins (either close to -MAX_FLOAT or
MAX_FLOAT).
Finally, the allocation is applied twice even for non-animated cases.
https://bugzilla.gnome.org/show_bug.cgi?id=669291
Alejandro Piñeiro [Tue, 14 Feb 2012 15:37:51 +0000 (16:37 +0100)]
ClutterStage: notify "key-focus" change on clutter_stage_emit_key_focus_event
Jasper St. Pierre [Tue, 14 Feb 2012 03:40:15 +0000 (22:40 -0500)]
actor: Add freeze/thaw when changing the first/last child
This should improve performance when adding/removing lots
of children.
Rob Bradford [Fri, 10 Feb 2012 16:46:45 +0000 (16:46 +0000)]
wayland: Add accessor API to permit access to underlying Wayland structures
* clutter_wayland_input_device_get_wl_input_device for the input device
* clutter_wayland_stage_get_wl_surface for the Wayland surface
* clutter_wayland_stage_get_wl_shell_surface for the shell surface
Rob Bradford [Fri, 10 Feb 2012 16:44:32 +0000 (16:44 +0000)]
build: Install a clutter-wayland pkg-config file
Neil Roberts [Mon, 28 Nov 2011 13:46:30 +0000 (13:46 +0000)]
Convert all of the internal shader-based effects to use snippets
This converts the blur, colorize and desaturate effects to use
snippets instead of CoglPrograms. Cogl can handle the snippets much
more efficiently than programs so this should be a performance win. It
also fixes the problem that Cogl would end up recompiling the program
for every instance of the effects because Clutter was not reusing the
same program.
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
Neil Roberts [Mon, 13 Feb 2012 15:11:44 +0000 (15:11 +0000)]
blur-effect: Use the texture size to work out the x/y step
The blur effect needs to pass a uniform to the GLSL shader so that it
can know the texture coordinate offset from one texel to another. To
calculate this the blur effect was previously using the allocation
size of the actor rounded up to the next power of two. Presumably the
assumption was that Cogl would round up the size of the texture to the
next power of two when allocating the texture. However this is not be
true if the driver supports NPOT textures. Also it doesn't take into
account the paint volume of the actor which may cause the texture to
be a completely different size. This patch just changes to directly
use the size of the texture.
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
Neil Roberts [Mon, 28 Nov 2011 11:53:54 +0000 (11:53 +0000)]
offscreen-effect: Add clutter_offscreen_effect_get_texture
Sometimes a subclass of ClutterOffscreenEffect wants to paint with a
completely custom material. In that case it is awkward to modify the
material returned owned by ClutterOffscreenEffect so it makes more
sense to just get the texture and manage its own material.
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
Neil Roberts [Fri, 10 Feb 2012 10:46:25 +0000 (10:46 +0000)]
tests: Remove conformance tests that have been ported to Cogl
A lot of the conformance tests that were just testing Cogl
functionality have been ported to be standalone Cogl tests in the Cogl
source tree. This patch removes those from Clutter so we don't have to
maintain them in two places.
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
Neil Roberts [Thu, 9 Feb 2012 17:22:24 +0000 (17:22 +0000)]
clutter-texture: Don't create a dummy texture
All of the pipelines used for ClutterTexture actors share a common
pipeline ancestor created with cogl_pipeline_copy. Previously this
ancestor had a dummy 1x1 texture attached to it so that it would end
up with the same state as the child pipelines that will render with a
texture. Cogl now has a mechanism to specify that a texture will be
used with a pipeline layer without having to create an actual texture.
This patch makes it use that to avoid having an unused texture.
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
Chun-wei Fan [Tue, 14 Feb 2012 01:52:14 +0000 (09:52 +0800)]
Update VS property sheets
"Install" the "new" deprecated/clutter-timeline.h header
Jasper St. Pierre [Mon, 13 Feb 2012 22:12:41 +0000 (17:12 -0500)]
actor: Allow insert_child_at_index to add a child at the end with an index
If we have N children and the user passes N (or a number beyond N) to
clutter_actor_insert_child_at_index, we should respond by adding the
child at the end, not silently doing nothing.
Emmanuele Bassi [Mon, 13 Feb 2012 18:19:48 +0000 (18:19 +0000)]
Add a note on the paint volume origin
This should avoid trying to fix the origin of a paint volume set from
the allocation's origin, and thus breaking everything.
A PaintVolume for an actor is defined to be relative to the actor's
modelview unless specifically modified by internal functions; the origin
of an actor's allocation is, on the other hand, parent-relative.
Jasper St. Pierre [Mon, 13 Feb 2012 17:43:08 +0000 (12:43 -0500)]
actor: Only care about a child's paint volume when clip_to_allocation isn't set
If we're clipping to the allocation, then the child can paint wherever it
wants, and we don't care. The paint volume is the allocation here.
Emmanuele Bassi [Mon, 13 Feb 2012 17:56:12 +0000 (17:56 +0000)]
actor: Remove stray cogl_object_unref()
The outline primitive is static, so unref'ing it makes Clutter crash.
Emmanuele Bassi [Mon, 13 Feb 2012 17:26:37 +0000 (17:26 +0000)]
actor: Add destroy_all_children()
There are times when we don't want to remove all children and count of
the reference count to drop to 0 to ensure destruction; there are cases,
such as managed environments, where it's preferable to ensure that the
children of an actor get actually destroyed.
Emmanuele Bassi [Mon, 13 Feb 2012 16:58:30 +0000 (16:58 +0000)]
interactive/depth: Drop deprecated API
Emmanuele Bassi [Mon, 13 Feb 2012 16:47:17 +0000 (16:47 +0000)]
interactive/*: Update the API usage
Drop some deprecated methods.
Emmanuele Bassi [Mon, 13 Feb 2012 16:05:21 +0000 (16:05 +0000)]
Deprecate ClutterStage:color
ClutterActor has a background-color property, now; we should use it for
the Stage, re-implement the color property in terms of background-color.
and deprecate the Stage property.
Emmanuele Bassi [Mon, 13 Feb 2012 15:26:26 +0000 (15:26 +0000)]
docs: Use ClutterTimeline:repeat-count instead of :loop
Emmanuele Bassi [Mon, 13 Feb 2012 15:04:18 +0000 (15:04 +0000)]
timeline: Move deprecated methods into a separate header
Emmanuele Bassi [Mon, 13 Feb 2012 15:04:00 +0000 (15:04 +0000)]
animation: Do not use deprecated timeline methods
Emmanuele Bassi [Mon, 13 Feb 2012 14:58:47 +0000 (14:58 +0000)]
cookbook: Use clutter_timeline_set_repeat_count()
Emmanuele Bassi [Mon, 13 Feb 2012 14:45:06 +0000 (14:45 +0000)]
timeline: Add repeat-count
Being able to easily set the number of repeats has been a request for
the animation framework for some time now. The usual way to implement
this is: connect to the ::completed signal, use a static counter, and
stop the timeline when the counter hits a specific spot.
In the same light as the :auto-reverse property, we can make it easier
to implement this common functionality by adding a :repeat-count
property that, when set, limits the amount of loops that a Timeline can
perform before stopping itself.
In fact, we can implement the :loop property in terms of the
:repeat-count property just by using a sentinel value mapping to
"infinity", and map loop=FALSE to repeat-count=0, and loop=TRUE to
repeat-count=-1.
Emmanuele Bassi [Mon, 13 Feb 2012 13:44:52 +0000 (13:44 +0000)]
timeline: Deprecate the clone() method
The clutter_timeline_clone() method was a pretty dumb idea when it was
introduced, back when we still had the ClutterEffectTemplate and the
clutter_effect_* animation API. It has since become an API wart: we
cannot change or add new properties to be cloned without the risk of
breaking existing code. All in all, cloning a GObject is just a matter
of calling g_object_new() with the wanted properties.
Let's deprecate this throwback of the Olden Days™, so that we can remove
it for good once we break for 2.0.
Emmanuele Bassi [Mon, 13 Feb 2012 13:39:47 +0000 (13:39 +0000)]
Clean up clutter-timeline.h
Re-align everything to allow expansion, and move the only "protected"
function to the clutter-master-clock.h private header.
Jasper St. Pierre [Thu, 9 Feb 2012 20:45:14 +0000 (15:45 -0500)]
actor-meta: Correct annotations for vfuncs
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
Jasper St. Pierre [Thu, 9 Feb 2012 13:48:18 +0000 (08:48 -0500)]
actor: Fix some broken annotations
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
Emmanuele Bassi [Mon, 13 Feb 2012 11:43:26 +0000 (11:43 +0000)]
Update the Clutter moduleset
Emmanuele Bassi [Mon, 13 Feb 2012 08:59:09 +0000 (08:59 +0000)]
actor: Implement remove_all_children using ActorIter
The remove_all_children() method is an ideal candidate for using the
ActorIter API; the end result is more compact and easy to follow.
Emmanuele Bassi [Mon, 13 Feb 2012 08:52:08 +0000 (08:52 +0000)]
input-device: Do not use weak references with actors
Use the ClutterActor::destroy signal.
Emmanuele Bassi [Mon, 13 Feb 2012 08:45:22 +0000 (08:45 +0000)]
stage: Do not use weak refs with actors
ClutterActor provides a signal for notifying destruction: using weak
references is neither indicated nor recommended.
Emmanuele Bassi [Mon, 13 Feb 2012 08:44:40 +0000 (08:44 +0000)]
stage: Clean up
Remove some ifdeffed out dead code, and some duplication.
Emmanuele Bassi [Sat, 11 Feb 2012 16:02:31 +0000 (16:02 +0000)]
text: Fix regression
When the ClutterTextBuffer support inside ClutterText was merged, it
introduced a regression that was identified and fixed in bug 659116.
The optimization to not paint empty ClutterText actors is only valid
is the actor is not editable, or if the cursor is not visible.
Emmanuele Bassi [Fri, 10 Feb 2012 12:26:43 +0000 (12:26 +0000)]
build: Fix platform_linux check
Missing * at the end.
As a side effect, this commit enables the ABI check when running make
check inside the clutter/ directory.
Chun-wei Fan [Fri, 10 Feb 2012 08:15:06 +0000 (16:15 +0800)]
Update config.h.win32(.in)
Make it more like the config.h(.in) in terms of the entries to check.
Chun-wei Fan [Fri, 10 Feb 2012 08:10:47 +0000 (16:10 +0800)]
Update Visual C++ property sheets
-Stop installing the cookbook items for now
-Reflect on newly added and deprecated public headers
Chun-wei Fan [Fri, 10 Feb 2012 07:50:55 +0000 (15:50 +0800)]
Update Clutter Visual C++ projects
Link also to GIO as the GResource APIs from GIO is now being used
Emmanuele Bassi [Thu, 9 Feb 2012 18:42:27 +0000 (18:42 +0000)]
Add abicheck.sh
Courtesy of GLib and GTK+. The abicheck.sh is a simple, Linux-only,
script to check that we're not leaking private symbols, or that the
clutter.symbols file hasn't been updated.
In theory, it should go inside the distcheck phase.
Emmanuele Bassi [Thu, 9 Feb 2012 18:41:55 +0000 (18:41 +0000)]
symbols: Update
Add a bunch of missing public symbols, and remove some cruft.
Emmanuele Bassi [Thu, 9 Feb 2012 18:41:19 +0000 (18:41 +0000)]
build: Identify the Linux hosts
This gives us a nice conditional, like the one we have on Windows and
OSX.
Emmanuele Bassi [Thu, 9 Feb 2012 18:40:03 +0000 (18:40 +0000)]
Mark internal symbol as private
A bunch of private symbols have escaped into the SO; let's rectify this
situation by using the '_' private prefix, or making them static as they
should have been.
Emmanuele Bassi [Thu, 9 Feb 2012 16:44:28 +0000 (16:44 +0000)]
conform/actor: Add unit for the Container signals
ClutterActor should be emitting signals defined on the ClutterContainer
interface, as well as ensuring that manipulating the scene graph is
still possible from within them.
The new unit checks that we're emitting signals, by implementing
something similar to the Bin class available in toolkits like gtk, st,
and mx — i.e. a container that can only hold one child at any given
point.
Neil Roberts [Wed, 21 Dec 2011 15:13:53 +0000 (15:13 +0000)]
clutter-backend: Use the Cogl main loop mechanism
Cogl now requires that all applications integrate their main loop with
Cogl so that it can listen for events from winsys. This patch just
adds Cogl's GSource to the main loop.
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
Reviewed-by: Robert Bragg <robert@linux.intel.com>
Robert Bragg [Thu, 9 Feb 2012 16:04:19 +0000 (16:04 +0000)]
Updates use of Cogl in line with api changes
Some of Cogl's experimental apis have changed so that the buffer apis
now need to be passed a context argument and some drawing apis have been
replaced with cogl_framebuffer_ drawing apis that take explicit
framebuffer and pipeline arguments.
These changes were made as part of Cogl moving towards a more stateless
api that doesn't rely on a global context.
This patch updates Clutter to work with the latest Cogl api and bumps
the required Cogl version to 1.9.5.
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
Reviewed-by: Neil Roberts <neil@linux.intel.com>
Emmanuele Bassi [Thu, 9 Feb 2012 15:49:30 +0000 (15:49 +0000)]
actor: Add ClutterActorIter.destroy()
Similar to the clutter_actor_iter_remove(), but it'll call destroy()
instead of remove_child().
We can also reimplement the ::destroy default handler using it, and make
it more compact.
Emmanuele Bassi [Thu, 9 Feb 2012 15:43:25 +0000 (15:43 +0000)]
actor: Add a default handler for ::destroy
Now that ClutterActor can be instantiated, we need to do the right
thing, and destroy its children when it is destroyed.
Emmanuele Bassi [Thu, 9 Feb 2012 15:38:11 +0000 (15:38 +0000)]
docs: Update the Container interface documentation
The API reference should be more explicit about which parts of the
interface should be overridden, and which are deprecated.
Emmanuele Bassi [Thu, 9 Feb 2012 14:22:31 +0000 (14:22 +0000)]
conform/actor-graph: Add more cases
The actor-insert unit is not exercising the whole API and its allowed
arguments; this let sneak in the buglet found in bug 669730.
Florian Müllner [Thu, 9 Feb 2012 01:13:50 +0000 (02:13 +0100)]
actor: Fix add_child_at_index() for negative index
There is a typo in the check for a negative index: the index variable
should be index_, not index - unfortunately, the latter can still be
resolved to index(3), so compiler and linker are perfectly happy.
https://bugzilla.gnome.org/show_bug.cgi?id=669730
Мирослав Николић [Wed, 8 Feb 2012 20:40:54 +0000 (21:40 +0100)]
Updated Serbian translation
Emmanuele Bassi [Tue, 7 Feb 2012 11:36:27 +0000 (11:36 +0000)]
text: Avoid changing the contents when possible
An editable ClutterText will reset the selection and cursor whenever the
contents are changed — even if those contents are the same. As this may
confuse the user, we should check if we're setting the exact same string,
and bail out if necessary.
Emmanuele Bassi [Tue, 7 Feb 2012 11:33:12 +0000 (11:33 +0000)]
text: Fix annotations
Both set_text() and set_markup() have relaxed their preconditions on a
non-NULL string as their argument, so we need to update the annotations.
Emmanuele Bassi [Tue, 7 Feb 2012 11:31:28 +0000 (11:31 +0000)]
text: Style cleanups
Inline wrapper functions, and remove deep nested if's.
Emmanuele Bassi [Tue, 7 Feb 2012 11:30:43 +0000 (11:30 +0000)]
interactive/text-field: Modernize
Emmanuele Bassi [Mon, 6 Feb 2012 18:23:21 +0000 (18:23 +0000)]
text: Add the coords_to_position() method
The reverse of position_to_coords().
While providing documentation on how to implement it using the
PangoLayout API, I realized that the verbosity of it all, plus the usage
of the Pango API, was not worth it, and decided to expose the method we
are using internally.
Emmanuele Bassi [Mon, 6 Feb 2012 17:34:26 +0000 (17:34 +0000)]
docs: Fix up Since annotation
We only use stable releases for "since" tags.
Emmanuele Bassi [Mon, 6 Feb 2012 16:45:15 +0000 (16:45 +0000)]
Post-release version bump to 1.9.11
Emmanuele Bassi [Mon, 6 Feb 2012 16:40:00 +0000 (16:40 +0000)]
Release 1.9.10 (snapshot)
Emmanuele Bassi [Mon, 6 Feb 2012 16:34:18 +0000 (16:34 +0000)]
docs: Update release notes
Tristan Van Berkom [Sun, 29 Jan 2012 12:29:38 +0000 (21:29 +0900)]
Fixed clutter_state_remove_key_internal() to propagate the is_inert state
This was causing warnings when calling g_object_weak_unref on an
already finalized object.
https://bugzilla.gnome.org/show_bug.cgi?id=668951
Tristan Van Berkom [Sat, 4 Feb 2012 13:43:51 +0000 (22:43 +0900)]
Fix Makefile to properly include clutter-backend-eglnative.h in the disted tarball
https://bugzilla.gnome.org/show_bug.cgi?id=669360
Emmanuele Bassi [Mon, 6 Feb 2012 15:34:13 +0000 (15:34 +0000)]
model: Drop GValueArray usage
We can use a plain C array of GValues when deserializing a ClutterModel
implementation from a ClutterScript description.
Emmanuele Bassi [Mon, 6 Feb 2012 14:37:49 +0000 (14:37 +0000)]
list-model: Migrate from GValueArray
GValueArray is on its way to deprecation in GLib; as far as the
ListModel class is concerned, a plain C array of GValue is a perfectly
suitable replacement for the GValueArray usage. It actually is an
improvement, given that it's going to take less memory.
Emmanuele Bassi [Sun, 5 Feb 2012 08:47:17 +0000 (08:47 +0000)]
Clean up clutter-actor.h
It's time, we delayed far too long.
Emmanuele Bassi [Thu, 2 Feb 2012 14:07:38 +0000 (14:07 +0000)]
interactive/actor: Show event and animation API
Emmanuele Bassi [Thu, 2 Feb 2012 11:18:00 +0000 (11:18 +0000)]
docs: Clarify actor map and unmap methods
ClutterActor stopped requiring to override the map and unmap virtual
functions some time ago.
Now that ClutterActor implements the Container interface, overriding map
and unmap to control the MAPPED state of the children is pretty much
going to be a source of bugs and misunderstandings.
Plus, the ordering of the unmap, destroy, dispose, and finalize calls
should be be documented properly.
The documentation should clarify all that.
Emmanuele Bassi [Thu, 2 Feb 2012 11:07:14 +0000 (11:07 +0000)]
docs: Update the actor invariants
• Clear up what's deprecated.
• Remove mentions of set_parent/unparent, and use add_child/remove_child
instead.
• Clarify that reparent may not touch the MAPPED state.
Evan Nemerson [Fri, 13 Jan 2012 02:15:55 +0000 (18:15 -0800)]
introspection: add some missing annotations
https://bugzilla.gnome.org/show_bug.cgi?id=667840
Emmanuele Bassi [Tue, 31 Jan 2012 17:03:14 +0000 (17:03 +0000)]
Clean up the clutter API reference Makefile.am
Emmanuele Bassi [Tue, 31 Jan 2012 16:44:43 +0000 (16:44 +0000)]
docs: Add an image for the XIncluded code
Emmanuele Bassi [Tue, 31 Jan 2012 16:44:07 +0000 (16:44 +0000)]
docs: Add private macro CLUTTER_PRIVATE_FIELD
Emmanuele Bassi [Tue, 31 Jan 2012 16:32:48 +0000 (16:32 +0000)]
docs: XInclude test-actor inside the Actor's description
Emmanuele Bassi [Tue, 31 Jan 2012 16:30:05 +0000 (16:30 +0000)]
docs: Add an example to the Actor description
Emmanuele Bassi [Tue, 31 Jan 2012 12:45:08 +0000 (12:45 +0000)]
actor: Add diagnostic message for "behaviours" in ClutterScript
Behaviours have long since been deprecated; we should notify the user
that still uses behaviours in ClutterScript definitions.
Emmanuele Bassi [Tue, 31 Jan 2012 12:35:17 +0000 (12:35 +0000)]
actor: Do not unmap/unrealize twice on destruction
When calling clutter_actor_destroy(), ClutterActor calls
update_map_state() on itself to unset the REALIZED and MAPPED states,
prior to running the dispose() implementation.
The default dispose() will call remove_child() (either directly or
through the Container implementation), which will check for the MAPPED
state and then run update_map_state() again. We use the previously set
MAPPED state to decide whether or not the parent should queue for a
relayout/redraw when removing a visible children.
If the MAPPED flag was cleared prior to remove_child(), though, it'll
always be unset by the time we get to remove_child(), and this will
cause missing redraws/relayouts; we were ignoring this prior the
post-First Apocalypse changes because we were doing:
if (was_mapped)
clutter_actor_queue_relayout (parent);
clutter_actor_queue_redraw (parent);
which is obviously wrong. Once I removed that glaring brain damage from
the remove_child() implementation, bugs started appearing — bugs that
were probably the reason why we introduced that brain damage in the
first place, instead of checking the source of those bugs.
The obvious fix is to avoid clearing up the actor's state on destroy()
until we remove the actor from its parent. This also reduces the amount
of work we do, and the code paths that can potentially go wrong.