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.
Emmanuele Bassi [Sun, 18 Dec 2011 22:52:49 +0000 (22:52 +0000)]
actor: Move ClutterShader-related code out of clutter-actor.c
Since the code dealing with ClutterShader is pretty self-contained, now,
we can safely move it outside of the main ClutterActor source file and
into its own. This will allow us to just drop a bunch of files when
branching for 2.0.
Emmanuele Bassi [Tue, 31 Jan 2012 10:34:45 +0000 (10:34 +0000)]
x11: Remove CLUTTER_DISABLE_DEPRECATED usage
Switch to CLUTTER_DEPRECATED and CLUTTER_DEPRECATED_FOR.
Emmanuele Bassi [Tue, 31 Jan 2012 10:28:04 +0000 (10:28 +0000)]
texture: Deprecate YUV setter
The YUV support depends on the driver support, and not only not many
drivers support YUV natively: the supported colorspaces are pretty much
useless.
The proper way to do YUV to RGB colorspace conversion on the GPU is to
use a fragment shader; for that, ClutterTexture and Cogl provide enough
API to achieve a good result - see the Clutter-GStreamer implementation,
for instance.
Emmanuele Bassi [Tue, 31 Jan 2012 10:23:48 +0000 (10:23 +0000)]
texture: It's bytes per pixel, not bits
Clarify the error message when checking the bpp argument.
Emmanuele Bassi [Mon, 30 Jan 2012 10:55:30 +0000 (10:55 +0000)]
Use ClutterActorIter inside layout managers
Whenever it is possible, or convenient.
Chao-Hsiung Liao [Sun, 29 Jan 2012 14:52:55 +0000 (22:52 +0800)]
Updated Traditional Chinese translation(Hong Kong and Taiwan)
Matej Urbančič [Sat, 28 Jan 2012 19:59:17 +0000 (20:59 +0100)]
Updated Slovenian translation
Emmanuele Bassi [Fri, 27 Jan 2012 17:07:33 +0000 (17:07 +0000)]
docs: Mention the DELEGATE_LAYOUT flag in set_allocation()
With code examples.
Emmanuele Bassi [Fri, 27 Jan 2012 15:48:46 +0000 (15:48 +0000)]
group: Set the NO_LAYOUT flag
Since FixedLayout won't do that for us any more, and we have Group users
and Group subclasses that may be relying on it.
Emmanuele Bassi [Fri, 27 Jan 2012 15:45:11 +0000 (15:45 +0000)]
fixed-layout: Remove the NO_LAYOUT flag set
ClutterFixedLayout is the default layout manager for ClutterActor.
Existing subclasses of ClutterActor will get a fixed layout manager
regardless of whether they are going to use it, but since it sets the
CLUTTER_ACTOR_NO_LAYOUT flag, it will introduce regressions on actors
that perform their own layout management.
The CLUTTER_ACTOR_NO_LAYOUT flag was a bit of a mistake in the first
place, as it was introduced as a last minute workaround in the 1.0
process to deal with broken stuff in Moblin. It's going to be a target
for deprecation towards a removal when we start the 2.0 process.
Kerrick Staley [Thu, 29 Dec 2011 09:15:05 +0000 (03:15 -0600)]
Fix spelling in Clutter Cookbook: ouest -> west
Emmanuele Bassi [Thu, 26 Jan 2012 17:10:18 +0000 (17:10 +0000)]
box: Use the ActorIter API
And remove a useless override of the pick() virtual function while we're
at it.
https://bugzilla.gnome.org/show_bug.cgi?id=668669
Emmanuele Bassi [Wed, 25 Jan 2012 15:31:51 +0000 (15:31 +0000)]
stage: Use the iterator API instead of the DOM one
Whenever we're iterating over the children of the Stage we can now use
the ClutterActorIter API.
https://bugzilla.gnome.org/show_bug.cgi?id=668669
Emmanuele Bassi [Wed, 25 Jan 2012 15:27:57 +0000 (15:27 +0000)]
actor: Add ClutterActorIter
Iterating over children and ancestors of an actor is a relatively common
operation. Currently, you only have one option: start a for() loop, get
the first child of the actor, and advance to the next sibling for the
list of children; or start a for() loop and advance to the parent of the
actor.
These operations can be easily done through the ClutterActor API, but
they all require going through the public API, and performing multiple
type checks on the arguments.
Along with the DOM API, it would be nice to have an ancillary, utility
API that uses an iterator structure to hold the state, and can be
advanced in a loop.
https://bugzilla.gnome.org/show_bug.cgi?id=668669
Emmanuele Bassi [Fri, 27 Jan 2012 11:48:14 +0000 (11:48 +0000)]
box: Restore the ::destroy handler
During the gutting of ClutterBox, the destroy and dispose implementation
were removed. The former, especially, destroyed all children - which
usually meant that the redraw queues for the childre was cleared as
well. The removal introduced crashes when a Box was destroyed while its
children were still queueing redraws.
Emmanuele Bassi [Fri, 27 Jan 2012 11:42:33 +0000 (11:42 +0000)]
conform: Avoid a deadlock
Something is causing a deadlock when using clutter_threads_* API inside
the offscreen redirect conformance test. The conformance tests are
pretty insane anyway, so for the time being, let's put g_timeout_add()
back in while we figure out the issue.
Emmanuele Bassi [Fri, 27 Jan 2012 09:47:25 +0000 (09:47 +0000)]
tests: Update to use the symbolic button names
https://bugzilla.gnome.org/show_bug.cgi?id=668692
Emmanuele Bassi [Fri, 27 Jan 2012 09:46:51 +0000 (09:46 +0000)]
docs: Update to show the symbolic button names
https://bugzilla.gnome.org/show_bug.cgi?id=668692
Emmanuele Bassi [Fri, 27 Jan 2012 09:46:10 +0000 (09:46 +0000)]
drag-action: Use the symbolic constants for the button
https://bugzilla.gnome.org/show_bug.cgi?id=668692
Emmanuele Bassi [Fri, 27 Jan 2012 09:43:06 +0000 (09:43 +0000)]
event: Add symbolic names for left, middle, and right buttons
Symbolic names are better than magic numbers, even if they are
well-established and won't likely change.
This maps to a commit in GTK+ that introduced the same names; it
was decided to go for PRIMARY, MIDDLE, and SECONDARY because of
the confusion that may arise when the button order gets flipped
in left-handed configurations - the "left" button (i.e. 1) becomes
the right-most button, and the "right" button (i.e. 3) becomes
the left-most button.
https://bugzilla.gnome.org/show_bug.cgi?id=668692
Emmanuele Bassi [Fri, 27 Jan 2012 07:30:02 +0000 (07:30 +0000)]
doc/cookbook: Remove dead link
Emmanuele Bassi [Thu, 26 Jan 2012 17:11:27 +0000 (17:11 +0000)]
Remove unused variable
Rob Bradford [Thu, 26 Jan 2012 15:39:16 +0000 (15:39 +0000)]
wayland: Correctly support fullscreening before the stage is realized
Rather than just call into wl_shell_surface_set_fullscreen we must repeat all
the steps to correctly fullscreen the surface.