Emmanuele Bassi [Wed, 7 Sep 2011 15:14:10 +0000 (16:14 +0100)]
script: Hide private symbols
A bunch of private functions we use when parsing got exposed accidentaly
to the list of public symbols by virtue of not having the leading '_'
that we use to filter them out of the shared object — all the while the
header that declares them is a private, non installed one.
Let's rectify this situation with a bit of minor surgery on the code.
Emmanuele Bassi [Wed, 7 Sep 2011 14:20:42 +0000 (15:20 +0100)]
text: Pack all bitfields at the end of the private structure
Don't leave them in the middle, to avoid holes.
Emmanuele Bassi [Wed, 7 Sep 2011 12:28:15 +0000 (13:28 +0100)]
text: Clear up priv->text checks
The priv->text field cannot ever be NULL, so we don't need to check for
that in a series of places. We also need to assert() that pre-condition
in the couple of places where we set the contents of the ClutterText
actor, namely in set_text_internal() and set_markup_internal().
Based on a patch by: Dan Winship <danw@gnome.org>
http://bugzilla.clutter-project.org/show_bug.cgi?id=2629
Emmanuele Bassi [Wed, 7 Sep 2011 12:08:22 +0000 (13:08 +0100)]
text: Consistently protect against NULL strings
When calling clutter_text_set_text_internal() or
clutter_text_set_markup_internal() we need to make sure to pass a
non-NULL string.
Bruce Cowan [Wed, 7 Sep 2011 12:27:34 +0000 (13:27 +0100)]
Added British English translation
Emmanuele Bassi [Wed, 7 Sep 2011 11:04:08 +0000 (12:04 +0100)]
actor: Fix annotations for out Vertex parameters
Emmanuele Bassi [Tue, 6 Sep 2011 11:45:41 +0000 (12:45 +0100)]
text: Make :use-markup set idempotent
Setting :use-markup and :text is currently not idempotent, and it
depends on the ordering, e.g.:
g_object_set (actor, "use-markup", TRUE, "text", value, NULL);
does not yield the same results as:
g_object_set (actor, "text", value, "use-markup", TRUE, NULL);
This is particularly jarring when using ClutterText from ClutterScript,
but in general GObject properties should not rely on the order when used
from g_object_set().
The fix is to store the contents of the ClutterText as a separate string
from the displayed text, and use the contents, instead of the displayed
text, when toggling the :use-markup property.
Let's also add a unit test for good measure, to try and catch
regressions.
https://bugzilla.gnome.org/show_bug.cgi?id=651940
Andika Triwidada [Wed, 7 Sep 2011 08:46:43 +0000 (15:46 +0700)]
Updated Indonesian translation
Neil Roberts [Tue, 6 Sep 2011 08:41:06 +0000 (09:41 +0100)]
mingw-fetch-dependencies: Build ATK from source
There is no prebuilt package for ATK 2.1.5 which Clutter now depends
on so let's build it from source instead. The ATK packages don't have
a .gz version so this patch also changes it to download the .bz2
version of json-glib to avoid having to accept both formats.
Emmanuele Bassi [Tue, 6 Sep 2011 07:32:07 +0000 (08:32 +0100)]
build: Fix up the release rules
Highlight actions and errors, and update the release message.
Emmanuele Bassi [Mon, 5 Sep 2011 20:39:51 +0000 (21:39 +0100)]
Post-release version bump to 1.7.15
Emmanuele Bassi [Mon, 5 Sep 2011 19:54:35 +0000 (20:54 +0100)]
Release Clutter 1.7.14
Emmanuele Bassi [Mon, 5 Sep 2011 20:15:37 +0000 (21:15 +0100)]
build: Fix distcheck in cookbook/examples
Emmanuele Bassi [Mon, 5 Sep 2011 14:26:27 +0000 (15:26 +0100)]
docs: Update test-easing and xinclude it into ClutterAnimation
The easing test is a nice example of what ClutterAnimation and
clutter_actor_animate() can do. The "tween ball to the pointer
event coordinates" is a bit of a staple in animation libraries
and their documentation.
Emmanuele Bassi [Mon, 5 Sep 2011 14:25:46 +0000 (15:25 +0100)]
static-colors: Simplify the defines
Use a "private" macro to simplify the defined static colors.
Emmanuele Bassi [Sun, 4 Sep 2011 16:57:50 +0000 (17:57 +0100)]
text: Make :line-wrap actually work
When we paint a ClutterText we ask the actor for a PangoLayout that fits
inside the actor's allocation - both width and height.
Sadly, whenever a height is set on a PangoLayout, Pango will wrap its
contents - regardless of whether the layout should actually wrap or not.
This means that in certain easy to exploit cases, Clutter will paint a
Text actor with its contents wrapping even if the :wrap property is set
to FALSE.
In order to fix this we need to encode some more cases inside the
::paint implementation of ClutterText, and ask the cache for a layout
that is sized as the allocation's width, but not as its height; we also
need to perform a clip if we detect that the PangoLayout's logical size
is going to overflow the allocated size. This clip might cause some
performance issue, given that clipping breaks batching in the Cogl
journal; hopefully all clips for text are going to be screen-aligned, so
at the end of the batch it'll just scissor them out.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2339
Dan Winship [Fri, 2 Sep 2011 16:51:46 +0000 (12:51 -0400)]
clutter-flow-layout: fix non-0,0 offset allocation
https://bugzilla.gnome.org/show_bug.cgi?id=649631
Shankar Prasad [Mon, 5 Sep 2011 12:33:48 +0000 (18:03 +0530)]
updated Kannada Translation
Shankar Prasad [Mon, 5 Sep 2011 08:34:50 +0000 (14:04 +0530)]
Added and updated Kannada Translation
Marek Černocký [Sun, 4 Sep 2011 17:35:49 +0000 (19:35 +0200)]
Updated Czech translation
Fran Dieguez [Sun, 4 Sep 2011 16:18:55 +0000 (18:18 +0200)]
Updated galician translations
Chao-Hsiung Liao [Sat, 3 Sep 2011 22:34:25 +0000 (06:34 +0800)]
Updated Traditional Chinese translation(Hong Kong and Taiwan)
Daniel Nylander [Sat, 3 Sep 2011 11:02:29 +0000 (13:02 +0200)]
Updated Swedish translation
Emmanuele Bassi [Fri, 2 Sep 2011 14:51:56 +0000 (15:51 +0100)]
docs: Fix up deprecation notice for BehaviourScale
Emmanuele Bassi [Fri, 2 Sep 2011 14:49:05 +0000 (15:49 +0100)]
docs: Fix the ClutterTimeline:auto-reverse link
Emmanuele Bassi [Fri, 2 Sep 2011 14:48:27 +0000 (15:48 +0100)]
docs: Inline test-constraints.c inside BindConstraint's description
Emmanuele Bassi [Fri, 2 Sep 2011 14:36:40 +0000 (15:36 +0100)]
test-constraints: Clean up the example
Add some comments to detail what are we doing and why.
Emmanuele Bassi [Fri, 2 Sep 2011 14:22:08 +0000 (15:22 +0100)]
docs: Inline test-drop.c into DropAction's description
Also, mention that DropAction only works with DragAction.
Emmanuele Bassi [Fri, 2 Sep 2011 13:50:07 +0000 (14:50 +0100)]
docs: Include test-drag as the DragAction example
Emmanuele Bassi [Fri, 2 Sep 2011 13:28:16 +0000 (14:28 +0100)]
docs: Remove the 1.8 index for Cally
No new API has been added in during the 1.7 development cycle.
Emmanuele Bassi [Fri, 2 Sep 2011 13:18:54 +0000 (14:18 +0100)]
docs: Add missing clutter_backend_get_cogl_context symbol
Emmanuele Bassi [Fri, 2 Sep 2011 12:58:34 +0000 (13:58 +0100)]
bind: Check that the source is not contained inside the actor
Like commit
d0439cfb586ca14282c89035119a4acbc0295df7 for
AlignConstraint, let's check that the BindConstraint source is not
a child or a grandchild of the actor attached to the Constraint.
Emmanuele Bassi [Fri, 2 Sep 2011 12:56:25 +0000 (13:56 +0100)]
align: Check that source is not contained inside the actor
AlignConstraint won't work if the source is a child or a grandchild of
the ClutterActorMeta:actor to which it has been attached to: the
allocation flows from the parent to its children, not the other way
around; in order to avoid weirdness, we better document and check
that when we set the actor and when we set the source.
Emmanuele Bassi [Fri, 2 Sep 2011 12:54:57 +0000 (13:54 +0100)]
docs: Remove mentions of "frames" in Timeline
We still have some really old naming lying around.
Emmanuele Bassi [Fri, 2 Sep 2011 10:01:36 +0000 (11:01 +0100)]
cookbooks/examples: Use g_signal_handlers_disconnect_by_func()
The disconnect_matched() function is a bit too complicated, and its
simpler wrapper disconnect_by_func() is functionally equivalent in the
cases used by the cookbook examples.
Emmanuele Bassi [Thu, 1 Sep 2011 16:12:46 +0000 (17:12 +0100)]
Lock the main context when modifying the repaint functions list
The repaint functions list can (and should) be manipulated from
different threads, but it currently doesn't prevent multiple threads
from accessing it concurrently. We should have a simple lock and take it
when adding and removing elements from the list; the invocation is still
performed under the Big Clutter Lock™, so it doesn't require special
handling.
Emmanuele Bassi [Thu, 1 Sep 2011 15:06:04 +0000 (16:06 +0100)]
docs/cookbook: Update the introduction
Clean up some wording.
Emmanuele Bassi [Thu, 1 Sep 2011 12:51:20 +0000 (13:51 +0100)]
build: Install the cookbook examples code
Use $(datadir)/clutter-1.0/cookbook/examples as the target directory.
Emmanuele Bassi [Wed, 31 Aug 2011 11:27:30 +0000 (12:27 +0100)]
docs/cookbook: Update copyright
Emmanuele Bassi [Wed, 31 Aug 2011 11:23:01 +0000 (12:23 +0100)]
tests: Go back to the hover state on button-release
If we get a button release, going back to the hover state is the most
logical choice.
Emmanuele Bassi [Wed, 31 Aug 2011 11:22:07 +0000 (12:22 +0100)]
docs/cookbook: Add script->state connection recipe
Script definitions can connect a signal to a State transition; this is a
useful thing to document with a recipe in the cookbook.
Daniel Mustieles [Tue, 30 Aug 2011 19:24:26 +0000 (21:24 +0200)]
Updated Spanish translation
Robert Bragg [Tue, 12 Jul 2011 22:03:41 +0000 (23:03 +0100)]
actor: make offscreen_redirect prop take flags + default off
Because we have had several reports about significant performance
regressions since we enabled offscreen redirection by default for
handling correct opacity we are now turning this feature off by default.
We feel that clutter should prioritize performance over correctness in
this case. Correct opacity is still possible if required but the
overhead of the numerous offscreen allocations as well as the cost of
many render target switches per-frame seems too high relative the
improvement in quality for many cases.
On reviewing the offscreen_redirect property so we have a way to
disable redirection by default we realized that it makes more sense for
it to take a set of flags instead of an enum so we can potentially
extend the number of things that might result in offscreen redirection.
We removed the ability to say REDIRECT_ALWAYS_FOR_OPACITY, since it
seems that implies you don't trust the implementation of an actor's
has_overlaps() vfunc which doesn't seem right.
The default value if actor::redirect_offscreen is now 0 which
effectively means don't ever redirect the actor offscreen.
Emmanuele Bassi [Tue, 30 Aug 2011 09:47:12 +0000 (10:47 +0100)]
actions/drag: Be more reliable when destroying the drag handle
Whenever the drag handle gets destroyed mid-drag we need to cancel any
current drag operation and reset the state of the DragAction.
https://bugzilla.gnome.org/show_bug.cgi?id=657681
Alejandro Piñeiro [Tue, 30 Aug 2011 10:26:35 +0000 (12:26 +0200)]
Merge branch 'atkwindow'
Emmanuele Bassi [Mon, 29 Aug 2011 22:29:07 +0000 (23:29 +0100)]
Post-release version bump to 1.7.13
Emmanuele Bassi [Mon, 29 Aug 2011 22:05:03 +0000 (23:05 +0100)]
Release Clutter 1.7.12 (snapshot)
Emmanuele Bassi [Wed, 24 Aug 2011 17:38:17 +0000 (18:38 +0100)]
layout-managers: Take into account the allocations's origin
If an actor using a LayoutManager has attributes like margin or padding
then it'll have to shave them from the available allocation before
passing it to the LayoutManager::allocate() implementation. Layout
managers should, thus, not assume that the origin of the allocation is
in (0, 0), but take into account that the passed ActorBox might have a
different origin.
https://bugzilla.gnome.org/show_bug.cgi?id=649631
Emmanuele Bassi [Wed, 24 Aug 2011 17:36:19 +0000 (18:36 +0100)]
box: Munge the allocation passed to the layout manager
The actor is in charge of providing to the LayoutManager the available
allocation. ClutterBox should not just pass the box it got from its
parent: it should, instead, provide a normalized box, with an origin in
(0, 0) and the available size.
https://bugzilla.gnome.org/show_bug.cgi?id=649631
Emmanuele Bassi [Mon, 29 Aug 2011 21:17:53 +0000 (22:17 +0100)]
build: Add -lm to clutter's LIBADD rule
We need to explicitly link against libm when building Clutter, since we
use libm API.
https://bugzilla.gnome.org/show_bug.cgi?id=657529
Fran Dieguez [Sun, 28 Aug 2011 15:36:57 +0000 (17:36 +0200)]
Updated galician translations
Emmanuele Bassi [Sat, 27 Aug 2011 22:58:26 +0000 (23:58 +0100)]
build: Add -lm to the tests linker flags
https://bugzilla.gnome.org/show_bug.cgi?id=657529
Kjartan Maraas [Fri, 26 Aug 2011 11:26:49 +0000 (13:26 +0200)]
Updated Norwegian bokmål translation
Robert Bragg [Fri, 12 Aug 2011 15:25:53 +0000 (16:25 +0100)]
Adds experimental clutter_backend_get_cogl_context API
This adds experimental API to be able to get the CoglContext associated
with the ClutterBackend. The CoglContext is required to use some of the
experimental 2.0 Cogl API.
Note: Since CoglContext is itself experimental API this API should
considered experimental too. This patch introduces a
CLUTTER_ENABLE_EXPERIMENTAL_API #ifdef guard which anyone wanting to use
this API must define so it's explicitly clear to developers that they
are playing with experimental API.
Note: This API is not yet supported on OSX because OSX still uses the
stub Cogl winsys and the Clutter backend doesn't explicitly create a
CoglContext.
Note: even though this is experimental API we still promise that it
wont be changed during a stable release cycle. This means for example
that you can depend on this for the lifetime of the clutter-1.8 stable
release cycle.
Alejandro Piñeiro [Wed, 10 Aug 2011 17:19:33 +0000 (19:19 +0200)]
a11y: Using proper way to register to window events
Alejandro Piñeiro [Wed, 10 Aug 2011 11:06:14 +0000 (13:06 +0200)]
a11y: We don't need to explicitly manage window events
Alejandro Piñeiro [Wed, 10 Aug 2011 11:02:26 +0000 (13:02 +0200)]
a11y: Using AtkWindow on cally-stage
Emmanuele Bassi [Tue, 23 Aug 2011 09:58:09 +0000 (10:58 +0100)]
actor: Add a comment on the unmapping order
Let's add a comment to avoid reshuffling the unmap() implementation and
end up triggering these bugs:
http://bugzilla.clutter-project.org/show_bug.cgi?id=2621
https://bugzilla.gnome.org/show_bug.cgi?id=652036
Emmanuele Bassi [Mon, 22 Aug 2011 12:15:42 +0000 (13:15 +0100)]
docs/cookbook: Point out that Cogl does not do AA drawing
Emmanuele Bassi [Mon, 22 Aug 2011 11:33:20 +0000 (12:33 +0100)]
docs/cookbook: Update the link to the GObject reference
Daniel Mustieles [Fri, 19 Aug 2011 11:51:32 +0000 (13:51 +0200)]
Updated Spanish translation
Emmanuele Bassi [Thu, 18 Aug 2011 14:36:20 +0000 (15:36 +0100)]
x11/settings: Add Fontconfig/Timestamp key
The XSETTINGS key that matches the :fontconfig-timestamp property on
ClutterSettings.
Emmanuele Bassi [Thu, 18 Aug 2011 14:33:39 +0000 (15:33 +0100)]
settings: Add ClutterSettings:fontconfig-timestamp
The :fontconfig-timestamp is a write-only property that will get updated
by the underlying platform whenever the fontconfig configuration has
been changed — i.e. when the fontconfig caches should be rebuilt after
the user has installed a new font.
Emmanuele Bassi [Thu, 18 Aug 2011 14:32:29 +0000 (15:32 +0100)]
build: Depend on pangoft2 on X11
We need the fontconfig API to reinitialize the fontmap caches whenever
the system tells us that the user fonts have changed.
Robert Bragg [Tue, 16 Aug 2011 16:31:42 +0000 (17:31 +0100)]
text: Implement Scriptable interface for font-description
This makes ClutterText implement the Scriptable interface so that we can
have a custom property parser and setter for the font-description
property. This works by simply passing the string description through
to clutter_text_set_font_name.
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
Emmanuele Bassi [Mon, 15 Aug 2011 23:19:34 +0000 (00:19 +0100)]
Post-release version bump to 1.7.11
Emmanuele Bassi [Mon, 15 Aug 2011 22:50:03 +0000 (23:50 +0100)]
Release Clutter 1.7.10 (snapshot)
Emmanuele Bassi [Mon, 15 Aug 2011 22:52:45 +0000 (23:52 +0100)]
build: Do not define LDADD twice
Robert Bragg [Mon, 15 Aug 2011 17:24:32 +0000 (18:24 +0100)]
actor: Don't update last-paint-volume during picking
Actually this change has two notable effects; firstly we no longer
perform culling during picking and secondly we avoid updating the
last-paint-volume of an actor when picking.
We shouldn't perform culling during picking until clutter-stage.c is
updated to setup the clipping planes appropriately.
Since the last-paint-volume is intended to represent the visible region
of the actor the last time it was painted on screen it doesn't make
sense to update this during off screen pick renders since we are liable
to end up with a last-paint-volume that maps to an actors new position
when we next come to paint for real.
This fixes a bug in gnome-shell with dragging dash icons leaving a
messy trail on the screen.
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
Emmanuele Bassi [Mon, 15 Aug 2011 16:16:54 +0000 (17:16 +0100)]
Update the COPYING file
The FSF changed address, so we need to update the license accordingly to
avoid triggering issues with automated license checkers used by build
systems, like OBS.
https://bugzilla.gnome.org/show_bug.cgi?id=656588
Alejandro Piñeiro [Wed, 10 Aug 2011 18:25:43 +0000 (20:25 +0200)]
build: list correct dependencies
Related to bug https://bugzilla.gnome.org/show_bug.cgi?id=656306#c4
Emmanuele Bassi [Mon, 15 Aug 2011 14:53:58 +0000 (15:53 +0100)]
interactive/test-actors: Constraint the hands group
Use constraints to align and size the ClutterGroup containing the
spinning hands so that resizing the stage doesn't look like arse.
Emmanuele Bassi [Mon, 15 Aug 2011 14:35:41 +0000 (15:35 +0100)]
build: Require the latest stable version of Cogl
Emmanuele Bassi [Mon, 15 Aug 2011 14:16:24 +0000 (15:16 +0100)]
Post-release version bump to 1.7.9
Emmanuele Bassi [Mon, 15 Aug 2011 13:32:37 +0000 (14:32 +0100)]
Release Clutter 1.7.8 (snapshot)
Emmanuele Bassi [Mon, 15 Aug 2011 13:09:24 +0000 (14:09 +0100)]
conform: Temporarily disable Cally's conformance test
See bug:
https://bugzilla.gnome.org/show_bug.cgi?id=655588
for the failure.
Emmanuele Bassi [Mon, 15 Aug 2011 13:08:57 +0000 (14:08 +0100)]
docs: Fix up the unused symbols warning
Emmanuele Bassi [Mon, 15 Aug 2011 13:08:28 +0000 (14:08 +0100)]
docs: Fix up warnings in Cally's reference API
Robert Bragg [Fri, 22 Jul 2011 11:28:29 +0000 (12:28 +0100)]
stage-cogl: pass top-left relative swap_region coords
All 2D coordinate spaces in Cogl have their origin at the top-left so we
shouldn't be flipping the coordinates we pass to
cogl_framebuffer_swap_region to be relative to the bottom of the
framebuffer.
This bumps the Cogl version requirement to 1.7.5 since we've had to fix
a bug in the semantics of cogl_framebuffer_swap_region.
Reviewed-by: Neil Roberts <neil@linux.intel.com>
Neil Roberts [Thu, 4 Aug 2011 18:17:23 +0000 (19:17 +0100)]
test-cogl-blend-strings: Don't disable the TEXTURE_N test
This is now fixed in Cogl so there's no need to disable it.
Alejo Pacin [Thu, 4 Aug 2011 10:02:52 +0000 (12:02 +0200)]
a11y: Notify ATK_STATE_SHOWING state change
https://bugzilla.gnome.org/show_bug.cgi?id=648633
Neil Roberts [Sun, 31 Jul 2011 17:00:43 +0000 (18:00 +0100)]
clutter-stage-win32: Fix name cogl_win32_onscreen_set_foreign_window
Since commit
38b67e2884f of Cogl the naming scheme for winsys-specific
API has changed to be cogl_win32_onscreen_* instead of
cogl_onscreen_win32_* so it wouldn't build on Windows.
Kirk A. Baker [Mon, 25 Jul 2011 22:00:30 +0000 (15:00 -0700)]
osx: Avoid leaks in Stage::realize
clutter_stage_osx_realize() can now be called multiple times without
leaking views and windows.
https://bugzilla.gnome.org/show_bug.cgi?id=655307
Kirk A. Baker [Tue, 12 Jul 2011 04:56:04 +0000 (21:56 -0700)]
osx: Implement windowDidResignKey
Added isHiding field to _ClutterStageOSX to allow windowDidResignKey
delegate to not order full screen window back whilst the full screen
window was being hidden. This caused other application windows to be
hidden. Also added code to keep hidden stage windows from being listed
in the application's Windows menu.
https://bugzilla.gnome.org/show_bug.cgi?id=655311
Kirk A. Baker [Mon, 25 Jul 2011 22:02:46 +0000 (15:02 -0700)]
osx: Add windowDidChangeScreen delegate
Added -windowDidChangeScreen: delegate to handle condition where moving
host window to a different screen would cause pick errors to be output.
The delegate just causes the stage to be redrawn which re-creates the
pick buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=655306
Emmanuele Bassi [Fri, 29 Jul 2011 12:17:11 +0000 (13:17 +0100)]
model: Remove an unused variable
Evan Nemerson [Wed, 27 Jul 2011 07:14:10 +0000 (00:14 -0700)]
introspection: add missing introspection data from Vala bindings
https://bugzilla.gnome.org/show_bug.cgi?id=655387
Emmanuele Bassi [Fri, 29 Jul 2011 10:48:13 +0000 (11:48 +0100)]
docs: Update with the newly added Animatable symbol
Emmanuele Bassi [Fri, 15 Jul 2011 14:06:31 +0000 (15:06 +0100)]
state: Use the Animatable interface
The Animatable interface allows object classes to provide and animate
properties outside of the usual GObject property introspection API.
This change allows ClutterState to defer to the animatable objects the
property introspection and animation, just like ClutterAnimation does.
Emmanuele Bassi [Fri, 15 Jul 2011 13:31:12 +0000 (14:31 +0100)]
actor: There is no need to implement animate_property()
It's a deprecated virtual function, and its replacement does the right
thing by default.
Emmanuele Bassi [Fri, 15 Jul 2011 13:30:39 +0000 (14:30 +0100)]
animation: Use Animatable.interpolate_value()
And stop using the deprecated animate_property() method.
Emmanuele Bassi [Fri, 15 Jul 2011 13:27:26 +0000 (14:27 +0100)]
animatable: Deprecate and replace animate_property()
The animate_property() method of the Animatable interface is far less
than optimal:
• it has a direct reference to ClutterAnimation;
• it has an interval decomposed as two values.
These issues tie the Animatable interface with the Animation object,
even though it's neither necessary nor future-proof.
Let's introduce a new method, interpolate_value(), which does not
reference ClutterAnimation and uses a ClutterInterval to express the
initial and final states.
Emmanuele Bassi [Fri, 29 Jul 2011 10:29:51 +0000 (11:29 +0100)]
model: Clean up ModelIter vfunc wrappers
All ClutterModelIter virtual functions have a default implementation,
and G_TYPE_INSTANCE_GET_CLASS cannot return NULL unless in case of a
catastrophic event in the type system - which will most likely blow up
any application code way before you could call a ModelIter method.
Thus, the idiom:
klass = CLUTTER_MODEL_ITER_GET_CLASS (instance);
if (klass && klass->vfunc)
klass->vfunc (instance);
is utterly useless complication, and it can be perfectly replaced by:
CLUTTER_MODEL_ITER_GET_CLASS (instance)->vfunc (instance);
without any loss of safety.
Emmanuele Bassi [Thu, 28 Jul 2011 14:00:18 +0000 (15:00 +0100)]
model: Make sure to emit ::row-changed
Currently, only clutter_model_iter_set_valist() is in charge of emitting
the ClutterModel::row-changed signal. Both the set() and the
set_valist() functions can be called with multiple columns, so we
coalesce the signal emission at the end of the set_valist(), to have a
single ::row-changed emission per change.
The clutter_model_iter_set_value() function is just a thin wrapper
around the set_value() virtual function, but since it's called
internally we cannot add the signal emission there as well, as we'd
break the signal coalescing.
For this reason, we need some code refactoring inside the various set()
variants of ClutterModelIter:
- we only use the internal va_arg variant for both the set() and
set_valist() public functions, to avoid multiple type checks;
- the internal set_valist() calls an internal set_value() method
which calls the virtual function from the iterator vtable;
- a new internal emit_row_changed() method is needed to retrieve
the ClutterModel from the iterator, and emit the signal;
Now, all three variants of the value setter will call an internal
ClutterModelIter::set_value() wrapper, and emit the ::row-changed
signal.
To check that the intended behaviour has been implemented, and it's not
going to be broken, the test suite has grown a new unit which populates
a model and changes a random row.
Marek Černocký [Thu, 28 Jul 2011 07:31:07 +0000 (09:31 +0200)]
Updated Czech translation
Daniel Mustieles [Wed, 27 Jul 2011 18:34:39 +0000 (20:34 +0200)]
Updated Spanish translation
Emmanuele Bassi [Wed, 27 Jul 2011 10:48:07 +0000 (11:48 +0100)]
test/cairo-clock: Remove a double source color set
Do not call cairo_set_source_rgba() right after calling
clutter_cairo_set_source_color().
Alejandro Piñeiro [Tue, 26 Jul 2011 13:56:18 +0000 (15:56 +0200)]
a11y: Use existing clutter_actor_get_paint_visibility
Cally was initially created with Clutter 0.6 in mind. To check
recursively the visibility of a actor a custom method was added.
Since 0.8.4 clutter_actor_get_pain_visibility provides
the same functionality.
Also removed a dummy method. Lets add methods that provide a real
functionality.
Emmanuele Bassi [Tue, 26 Jul 2011 13:53:26 +0000 (14:53 +0100)]
cairo-texture: Add the :auto-resize property
Keeping the backing Cairo surface of a CairoTexture canvas in sync with
the actor's allocation is tedious and prone to mistakes. We can
definitely do better by simply exposing a property that does the surface
resize and invalidation automagically on ::allocate.
Philippe Normand [Mon, 7 Feb 2011 10:59:19 +0000 (11:59 +0100)]
tests: initial support for cally-text conform tests