Robert Bragg [Mon, 9 Jan 2012 19:14:09 +0000 (19:14 +0000)]
wayland-surface: Make _set_surface api public
This exposes a clutter_wayland_surface_set_surface() function. The
implementation ignores requests to re-set the same surface and since now
has code to cleanup old surface state before setting the new surface.
(previously the surface was construct only so this wasn't necessary)
Reviewed-by: Neil Roberts <neil@linux.intel.com>
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
Robert Bragg [Mon, 9 Jan 2012 19:11:43 +0000 (19:11 +0000)]
wayland-surface: Cleanup properly in _dispose
When disposing a ClutterWaylandSurface we now make sure to unref any
pipeline we created and unref any surface buffer textures we created.
Reviewed-by: Neil Roberts <neil@linux.intel.com>
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
Robert Bragg [Mon, 9 Jan 2012 19:09:43 +0000 (19:09 +0000)]
wayland-surface: remove unused damage array
There was a GArray member named damage that wasn't being used which this
patch removes.
Reviewed-by: Neil Roberts <neil@linux.intel.com>
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
Robert Bragg [Sat, 7 Jan 2012 21:44:32 +0000 (21:44 +0000)]
configure: fix --enable-evdev-input documentation
The --help documentation for ./configure was listing a spurious
--with-evdev option when it should list --enable-evdev-input.
Reviewed-by: Neil Roberts <neil@linux.intel.com>
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
Robert Bragg [Thu, 5 Jan 2012 14:33:35 +0000 (14:33 +0000)]
wayland: install wayland compositor headers + pkgconfig file
If wayland compositor support has been enabled then we make sure to
install the corresponding public headers and a
clutter-wayland-compositor.pc pkgconfig file.
Reviewed-by: Neil Roberts <neil@linux.intel.com>
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
Neil Roberts [Wed, 29 Feb 2012 16:18:07 +0000 (16:18 +0000)]
Remove test-wayland-surface
In a separate branch, this test has become quite complicated and
involves multiple files and its own configure options. Instead of
cluttering up the clutter source tree it has now been moved to its own
repo at:
http://github.com/clutter-project/test-wayland-surface
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
Jonh Wendell [Wed, 29 Feb 2012 17:03:44 +0000 (14:03 -0300)]
Updated Brazilian Portuguese translation
Emmanuele Bassi [Wed, 29 Feb 2012 15:12:55 +0000 (15:12 +0000)]
docs: Refresh the layout managers example image
Drop the window decoration and pointer; drop the double image for the
FlowLayout class; add an image for the TableLayout class.
Emmanuele Bassi [Wed, 29 Feb 2012 15:05:44 +0000 (15:05 +0000)]
docs: Update the actor example image
Emmanuele Bassi [Wed, 29 Feb 2012 15:02:59 +0000 (15:02 +0000)]
interactive/actor: Add margin usage example
Emmanuele Bassi [Wed, 29 Feb 2012 14:46:01 +0000 (14:46 +0000)]
build: Remove clutter-version.h.win32.in
The clutter-version.h header file is now completely generic, and does
not need to be masked by a Windows-specific header when building under
MSVC.
Emmanuele Bassi [Wed, 29 Feb 2012 14:43:01 +0000 (14:43 +0000)]
Annotate the exported version variables
When using MSVC we need to annotate the variables that are going to be
exported.
Emmanuele Bassi [Tue, 28 Feb 2012 15:45:24 +0000 (15:45 +0000)]
actor: Do not check for child destruction in add_child_internal()
We currently check for the IN_DESTRUCTION flag inside the
add_child_internal() function.
This check disallows calling methods that change the stacking order
within the destruction sequence, by triggering a critical warning first,
and leaving the actor in an undefined state, which then ends up being
caught by an assertion.
The reproducible sequence is:
- actor gets destroyed;
- another actor, linked to the first, will try to change the
stacking order of the first actor;
- changing the stacking order is a composite operation composed
by the following steps:
1. ref() the child;
2. remove_child_internal(), which removes the reference;
3. add_child_internal(), which adds a reference;
- the state of the actor is not changed between (2) and (3), as
it could be an expensive recomputation;
- if (3) bails out, then the actor is in an undefined state, but
still alive;
- the destruction sequence terminates, but the actor is unparented
while its state indicates being parented instead.
- assertion failure.
The obvious fix would be to decompose each set_child_*_sibling() method
into proper remove_child()/add_child(), with state validation; this may
cause excessive work, though, and trigger a cascade of other bugs in
code that assumes that a change in the stacking order is an atomic
operation.
Another potential fix is to just remove this check here, and let code
doing stacking order changes inside the destruction sequence of an actor
continue doing the work.
The third fix is to silently bail out early from every
set_child_*_sibling() and set_child_at_index() method, and avoid doing
work.
I have a preference for the second solution, since it involves the least
amount of work, and the least amount of code duplication.
See bug: https://bugzilla.gnome.org/show_bug.cgi?id=670647
Alejandro Piñeiro [Wed, 29 Feb 2012 14:49:23 +0000 (15:49 +0100)]
a11y: Not compute extents for actors without an stage
This solves a crash on GNOME Shell, as compute the extents
for some StWidgets could lead to call st_widget_get_theme_node,
and it is a fatal error to call this on a widget that it not
beed added to a stage.
Alejandro Piñeiro [Wed, 29 Feb 2012 14:47:36 +0000 (15:47 +0100)]
a11y: Stop to use ClutterActor::name as default accessible-name
ClutterActor::name is mostly used for debugging purposes
Chun-wei Fan [Wed, 29 Feb 2012 10:09:29 +0000 (18:09 +0800)]
Update VS property sheets
Update the "installation" of headers...
Chun-wei Fan [Wed, 29 Feb 2012 10:03:15 +0000 (18:03 +0800)]
Update clutter-version.h.win32(.in)
Make it like the clutter-version.h.in template. Since we aren't having
Windows-specific items in here (such as CLUTTER_FLAVOUR), perhaps we
could get the dllexport stuff in clutter-version.h.in, where it can be
used when necessary, and this file would be gone.
Emmanuele Bassi [Wed, 29 Feb 2012 09:27:01 +0000 (09:27 +0000)]
interactive: Remove test-shader
ClutterShader is deprecated, and we already have various tests for the
shader API, both for Cogl and for ClutterShaderEffect.
Emmanuele Bassi [Wed, 29 Feb 2012 09:25:51 +0000 (09:25 +0000)]
interactive: Remove test-fullscreen
The stage state test also has a fullscreen option, and it's a better
test all around.
Emmanuele Bassi [Wed, 29 Feb 2012 09:24:34 +0000 (09:24 +0000)]
interactive: Remove test-actor-clone
Another clone of the venerable test-actors - but test-actor already uses
ClutterClone, so there's really little point in it.
Emmanuele Bassi [Wed, 29 Feb 2012 09:23:40 +0000 (09:23 +0000)]
interactive: Remove test-behave
ClutterBehaviour and friends are deprecated, there's no point in having
an interactive test, and it may be misleading.
Emmanuele Bassi [Mon, 27 Feb 2012 16:47:53 +0000 (16:47 +0000)]
docs: Document the versioning macros
Emmanuele Bassi [Mon, 27 Feb 2012 16:31:53 +0000 (16:31 +0000)]
Annotate all functions available since 1.10
Emmanuele Bassi [Mon, 27 Feb 2012 16:03:09 +0000 (16:03 +0000)]
docs: Add new macros to the sections file
Emmanuele Bassi [Mon, 27 Feb 2012 15:56:12 +0000 (15:56 +0000)]
Move clutter-util.h into the deprecated section
Emmanuele Bassi [Mon, 27 Feb 2012 15:47:46 +0000 (15:47 +0000)]
Add a deprecated header for ClutterCairoTexture
Emmanuele Bassi [Mon, 27 Feb 2012 15:44:38 +0000 (15:44 +0000)]
Add a deprecated header for ClutterTexture
Emmanuele Bassi [Mon, 27 Feb 2012 15:29:50 +0000 (15:29 +0000)]
Add deprecated header for ClutterAnimation
Emmanuele Bassi [Mon, 27 Feb 2012 15:21:07 +0000 (15:21 +0000)]
Add a deprecated header for ClutterAnimatable
Emmanuele Bassi [Mon, 27 Feb 2012 15:16:38 +0000 (15:16 +0000)]
Add deprecated header for ClutterStageManager
Emmanuele Bassi [Mon, 27 Feb 2012 15:10:13 +0000 (15:10 +0000)]
Update the deprecation macros
Use the new versioned macros instead of the generic ones.
Emmanuele Bassi [Mon, 27 Feb 2012 14:59:00 +0000 (14:59 +0000)]
Add flexible versioning scheme
GLib introduced macros that allows defining the lower and upper bounds
of the API to be used by application code.
The lower bound allows to define the minimum version that will trigger
deprecation warnings; the upper bound defines the maximum version that
will trigger compiler warnings for unavailable symbols.
This scheme allows gradually porting application code to a new version
of the API, especially in case of resynchronization after multiple
development cycles.
Emmanuele Bassi [Mon, 27 Feb 2012 14:35:53 +0000 (14:35 +0000)]
Require GLib ≥ 2.31.19
For the new deprecation and versioning macros.
Emmanuele Bassi [Mon, 27 Feb 2012 14:03:57 +0000 (14:03 +0000)]
Move macros to their own headers
Emmanuele Bassi [Mon, 27 Feb 2012 13:08:31 +0000 (13:08 +0000)]
conformance: Clean up
Remove the last inconsistent bits.
Emmanuele Bassi [Mon, 27 Feb 2012 13:02:01 +0000 (13:02 +0000)]
conformance: Rename the source files
It's the conformance test suite: there's no need to namespace the files,
just like there's no need to namespace the units.
This commit does not change the Cogl tests: they will be moved to Cogl
over time, and it's easier to do if we leave them as they are.
Emmanuele Bassi [Mon, 27 Feb 2012 12:54:23 +0000 (12:54 +0000)]
conform: Clean up test names
Drop the 'test-' prefix: it's the conformance test suite, we know it's
full of tests.
Emmanuele Bassi [Mon, 27 Feb 2012 11:59:57 +0000 (11:59 +0000)]
actor: Add a method for computing the default paint volume
Now that ClutterActor has a default paint volume, subclasses may wish
to retrieve it without chaining up to the parent's implementation of
the get_paint_volume() function.
The get_default_paint_volume() returns a ClutterPaintVolume pointer
to the paint volume as computed by the default implementation of the
get_paint_volume() virtual function; it can only be used immediately,
as it's not guaranteed to survive across multiple frames.
Emmanuele Bassi [Mon, 13 Feb 2012 22:40:19 +0000 (22:40 +0000)]
paint-volume: Add a union method for boxes
Creating PaintVolume instances is not possible, and it's not recommended
anyway. It is, though, necessary to union paint volumes, especially with
2D boxes, in some cases.
Clutter should provide a simple convenience function that allows
unioning volumes to boxes in a moderately efficient way.
https://bugzilla.gnome.org/show_bug.cgi?id=670021
Emmanuele Bassi [Fri, 24 Feb 2012 15:42:11 +0000 (15:42 +0000)]
cookbook/examples: Modernize the code
Use new and non-deprecated methods.
Alexander Shopov [Mon, 27 Feb 2012 04:53:05 +0000 (06:53 +0200)]
Updated Bulgarian translation
Daniel Korostil [Sun, 26 Feb 2012 12:07:44 +0000 (14:07 +0200)]
Uploaded Ukranian
Gheyret Kenji [Sun, 26 Feb 2012 02:12:37 +0000 (11:12 +0900)]
Uyghur translation
Ihar Hrachyshka [Sat, 25 Feb 2012 19:33:41 +0000 (22:33 +0300)]
Updated Belarusian translation.
Fran Diéguez [Sat, 25 Feb 2012 12:49:07 +0000 (13:49 +0100)]
Updated Galician translations
Matej Urbančič [Thu, 23 Feb 2012 20:04:59 +0000 (21:04 +0100)]
Updated Slovenian translation
Мирослав Николић [Thu, 23 Feb 2012 19:54:23 +0000 (20:54 +0100)]
Updated Serbian translation
Emmanuele Bassi [Thu, 23 Feb 2012 14:34:26 +0000 (14:34 +0000)]
build: Make abicheck.sh backend-aware
It should be possible to adapt the abicheck.sh script so that it
actually tests the ABI of libclutter-1.0.so taking into account
the backends that were compiled into Clutter, and avoid expected
failures if Clutter was not built with a specific backend.
https://bugzilla.gnome.org/show_bug.cgi?id=670680
Emmanuele Bassi [Thu, 23 Feb 2012 17:21:57 +0000 (17:21 +0000)]
Clean up the included headers
Especially inside ClutterStage.
Emmanuele Bassi [Thu, 23 Feb 2012 17:01:40 +0000 (17:01 +0000)]
build: Fix the header order
The "keep the list sorted" comment on the list of headers is there not
for fun, or because I'm anal-retentive like that.
Daniel Mustieles [Thu, 23 Feb 2012 13:00:35 +0000 (14:00 +0100)]
Updated Spanish translation
Emmanuele Bassi [Thu, 23 Feb 2012 12:15:41 +0000 (12:15 +0000)]
Post-release version bump to 1.9.13
Emmanuele Bassi [Thu, 23 Feb 2012 12:04:29 +0000 (12:04 +0000)]
Release Clutter 1.9.12 (snapshot)
Emmanuele Bassi [Thu, 23 Feb 2012 12:01:11 +0000 (12:01 +0000)]
docs: Documentation fixes
Emmanuele Bassi [Thu, 23 Feb 2012 11:54:41 +0000 (11:54 +0000)]
docs: Document ClutterTextBuffer structures
Emmanuele Bassi [Thu, 23 Feb 2012 11:50:43 +0000 (11:50 +0000)]
docs: Fix unused symbols
Emmanuele Bassi [Thu, 23 Feb 2012 11:44:21 +0000 (11:44 +0000)]
build: Bump up Cogl dependency
We use the latest stable snapshot.
Emmanuele Bassi [Thu, 23 Feb 2012 11:31:26 +0000 (11:31 +0000)]
Fix compiler warning
Emmanuele Bassi [Tue, 21 Feb 2012 15:14:26 +0000 (15:14 +0000)]
docs: "Soft" deprecation of ClutterAlpha
We cannot deprecate ClutterAlpha yet. We cannot also implement
ClutterAlpha in terms of ClutterTimeline, because multiple Alpha
instances can be attached to the same Timeline. So we can start
with a "soft" deprecation: just a warning in the documentation
stating that ClutterAlpha will be deprecated, and removed, in the
future, and that newly-written code should use ClutterTimeline
instead.
Emmanuele Bassi [Tue, 21 Feb 2012 12:34:57 +0000 (12:34 +0000)]
Fix the progress function scope annotation
Emmanuele Bassi [Mon, 10 Oct 2011 10:25:40 +0000 (11:25 +0100)]
animation: Deprecate Alpha usage
We can use ClutterTimeline and its progress mode inside
ClutterAnimation; obviously, we have to maintain the invariants because
of the ClutterAnimation:alpha property, but if all you set is the :mode
property using one of the Clutter animation modes then we can skip the
ClutterAlpha entirely.
Emmanuele Bassi [Fri, 17 Feb 2012 16:06:28 +0000 (16:06 +0000)]
timeline: Add progress functions
The whole progress computation should not be done using a separate
class: it should be part of the Timeline class.
Emmanuele Bassi [Tue, 12 Jul 2011 11:32:18 +0000 (12:32 +0100)]
Move the easing functions to their own file
Instead of having the easing functions be dependent of ClutterAlpha, and
static to the clutter-alpha.c source file, we should make them generic
and move them to their own internal header and source files. This will
allow to re-use them in the near future.
Emmanuele Bassi [Tue, 21 Feb 2012 11:08:43 +0000 (11:08 +0000)]
drag-action: Use the motion event when passing the drag threshold
This avoids a critical warning, but it also makes the dragging more
fluid in case of threshold crossing.
https://bugzilla.gnome.org/show_bug.cgi?id=670402
Robert Bragg [Tue, 21 Feb 2012 15:55:51 +0000 (15:55 +0000)]
Reduce our internal dependence on the Cogl 1.x api
Since Cogl has started restricting what cogl 1.x api is exposed when
COGL_ENABLE_EXPERIMENTAL_2_0_API is defined and since we build all
Clutter internals with COGL_ENABLE_EXPERIMENTAL_2_0_API defined this
patch makes a first pass at reducing our internal use of the Cogl 1.x
api.
The most notable api that's no longer exposed to us internally is
the cogl_material_ api so this switches all Clutter internals to use the
cogl_pipeline_ api instead. This patch also makes quite a bit of
progress removing internal uses of CoglHandle although there is still
more to go.
Robert Bragg [Tue, 21 Feb 2012 14:23:44 +0000 (14:23 +0000)]
Pass context to cogl_texture_pixmap_x11_new() api
The experimental cogl_texture_pixmap_x11_new() api was recently changed
to take an explicit context argument and return a GError on failures.
This updates Clutter's use of the api accordingly.
Robert Bragg [Tue, 21 Feb 2012 14:01:22 +0000 (14:01 +0000)]
Loosen the guard around clutter_backend_get_cogl_context
We were only exposing clutter_backend_get_cogl_context() if
COGL_ENABLE_EXPERIMENTAL_2_0_API had been defined but the CoglContext
api is also available if COGL_ENABLE_EXPERIMENTAL_API has been defined.
As it was it meant that code opting into the experimental Cogl api
but not limiting to the 2.0 only api would have to #define
COGL_ENABLE_EXPERIMENTAL_2_0_API before including clutter.h but make
sure it wasn't defined when including cogl.h which was particularly
awkward.
Robert Bragg [Tue, 21 Feb 2012 13:37:55 +0000 (13:37 +0000)]
Rename cogl_framebuffer_swap_* apis to cogl_onscreen_swap_*
Recently the cogl_framebuffer_swap_* apis were moved into the
cogl_onscreen_* namespace since only CoglOnscreen framebuffers can be
double buffered. This renames all uses of the cogl_framebuffer_swap_*
apis in Clutter.
Robert Bragg [Tue, 21 Feb 2012 13:22:17 +0000 (13:22 +0000)]
Pass a CoglContext when calling cogl_pipeline_new
The experimental cogl_pipeline_new() api was recently changed so it
explicitly takes a CoglContext. This updates all calls to
cogl_pipeline_new() in clutter accordingly.
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>