Commit Graph

5508 Commits

Author SHA1 Message Date
Mike Ruprecht
ee708d1cf8 flow-layout: Check for all positive values
When creating a FlowLayout container, setting a specific size on it, and
adding a child to it, as per the attached testcase, it crashes. The line
on the backtrace doesn't really make sense, but from looking over it, it
appears that it's probably because priv->line_natural is NULL. The
attached patch makes it so in this case, priv->line_natural is
allocated.

https://bugzilla.gnome.org/show_bug.cgi?id=676068

Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
2012-05-22 14:25:19 +01:00
Chun-wei Fan
ef1860d71d Bug 676150 GDK: Fix build on Windows
-Don't include unistd.h and stdint.h unconditionally as not all Windows
 compilers have them around.
-Only include cogl/cogl-xlib.h when it is really supported by Cogl and GDK.
-sys/ioctl.h is not available on Windows (MinGW/MSVC).
-Correct the call to cogl_renderer_set_winsys_id:
 (backend_cogl->cogl_renderer, COGL_WINSYS_ID_WGL) ->
 (renderer, COGL_WINSYS_ID_WGL)
2012-05-21 23:01:23 +08:00
Bastian Winkler
aeea9ee778 actor: Add a custom scriptable "margin" property
The property uses an array with the following CSS style syntax

 [ top, right, bottom, left ] or
 [ top, left/right, bottom ] or
 [ top/bottom, left/right ] or
 [ top/right/bottom/left ]

https://bugzilla.gnome.org/show_bug.cgi?id=676367
2012-05-21 15:31:34 +02:00
Dominique Bureau
a2d40fcf8c ClutterText: Cannot pass NULL string to clutter_text_set_text()
Passing a NULL buffer to clutter_text_set_text() does not behave the same
way as passing an empty string "" (as specified in the documentation).
This was working as expected previously, but somehow the behaviour changed
at some point and created 2 new issues:
- Passing a NULL pointer will not reset the string
- If the ClutterText is editable, it will segfault in strcmp

Validations have been added to prevent this.

https://bugzilla.gnome.org/show_bug.cgi?id=675890
2012-05-21 11:30:22 +01:00
Tristan Van Berkom
dd61be7c2e ClutterDropAction: Avoid accessing priv->stage is not yet resolved.
This fixes drop_action_unregister() to not call g_object_get_data()
on priv->stage if not yet resolved. This can happen if the action's
actor was destroyed before ever being mapped.
2012-05-21 08:43:17 +01:00
Emmanuele Bassi
2c5af0c868 scroll-actor: Check for point equality in the internal setter
The public API should just accept any valid value; it's up to the
internal setter to check if we're getting the same value as the one
currently set.
2012-05-18 18:00:30 +01:00
Bastien Nocera
26c1d89d19 scroll-actor: Fix ->transition not being reset
When the transition was removed from the scroll-actor manually,
to cancel a not-finished animation, the transition struct member
wasn't reset to NULL.

This fixes this problem, and removes the need for the struct member
to be reset manually when animation has completed.

https://bugzilla.gnome.org/show_bug.cgi?id=676334
2012-05-18 17:36:44 +01:00
Emmanuele Bassi
c9028cee48 Move scroll actor test to the examples
Nothing specific to test, and the code is idiomatic enough to be used as
an example.
2012-05-17 10:57:15 +01:00
Bastian Winkler
06d1398592 table-layout: Remove unused animation helpers
They aren't used since ClutterTableLayout switched to the implicit
animations API.

https://bugzilla.gnome.org/show_bug.cgi?id=676158
2012-05-16 14:55:10 +02:00
Bastian Winkler
1f7ff75a5c text: Add missing introspection annotations
Add allow-none annotations where appropriate
2012-05-15 17:41:24 +02:00
Bastian Winkler
0ef4cc3aed keyframe-transition: Create a new interval if necessary
When setting up the transition manually by calling

  clutter_keyframe_transition_set_key_frame (transition, n, keys);
  clutter_keyframe_transition_set_values (transition, n, values);
  clutter_keyframe_transition_set_modes (transition, n, modes);

the frame doesn't have a valid interval when calling set_keys(), so we
need to check its existence and create it if necessary.

https://bugzilla.gnome.org/show_bug.cgi?id=676031
2012-05-15 17:41:24 +02:00
Bastian Winkler
8a4489c48e keyframe-transition: Documentation fixes
Update the documentation to use the right symbols

https://bugzilla.gnome.org/show_bug.cgi?id=676032
2012-05-15 17:41:24 +02:00
Emmanuele Bassi
c54c3047f8 scroll-actor: Paint children in pick mode
Chaining up to the parent's implementation of pick() is not enough: we
need to paint our children explicitly because of the compatibility mode
checks we use to avoid breaking custom containers.

https://bugzilla.gnome.org/show_bug.cgi?id=676088
2012-05-15 15:14:04 +01:00
Emmanuele Bassi
39a4929d75 scroll-actor: Implement pick()
We need to clip the children during picking as well as we do when
painting, to avoid reactive children outside of the visible area
receiving events.

This also allows us to refactor some common code into proper functions.
2012-05-14 10:36:30 +01:00
Chun-wei Fan
ee72d9b4af Visual C++ support: Add support to build GDK backend
-Add configuration in Clutter projects to add option to build Clutter with
 the GDK3 backend in addition to the Win32 backend
-Add another preconfigured clutter-config.h.win32_GDK which contains
 backend configs for both GDK3 and Win32 windowing and input.
2012-05-14 16:18:13 +08:00
Emmanuele Bassi
cb4f816840 actor: Include margin in explicit sizes for all cases
When asking for the preferred width and height of an actor, in case
only one of either the minimum or the natural width is set, the margin
offsets should also be applied.
2012-05-09 15:03:51 +01:00
Emmanuele Bassi
4fef7eb689 score: Add deprecation annotations to all docs
A single deprecation to the long-desc is not enough.
2012-05-08 16:13:26 +01:00
Emmanuele Bassi
c91cabdab1 score: Fix version of the deprecation annotations
ClutterScore was deprecated in Clutter 1.8, not 1.10.
2012-05-08 16:06:59 +01:00
Bastien Nocera
2bb84d9169 x11/device-manager-xi2: Fix assertions with touch
When getting touch events, the device manager would try
to pass an invalid device to translate_axes().

clutter_event_set_device() will only update event->touch.device
for touch events, not event->motion.device, as used.

Fixes Totem crashing on mouse motion/button press when using
a touchpad.

https://bugzilla.gnome.org/show_bug.cgi?id=675371
2012-05-03 19:32:07 +02:00
Bastien Nocera
217ff7c8fb event: Fix copying touch events
We were trying to copy motion axes instead of touch ones.

https://bugzilla.gnome.org/show_bug.cgi?id=675371
2012-05-03 19:32:07 +02:00
Emmanuele Bassi
74afe8bbcd Annotate deprecated get_type() functions
Even if their usage is limited, it's good to consistently deprecate
functions.
2012-05-03 11:35:20 +01:00
Emmanuele Bassi
fcd341d23e cally: Disable deprecation warnings
For ClutterGroup and ClutterRectangle.
2012-05-03 11:34:57 +01:00
Emmanuele Bassi
20f908e87f docs: Add annotation for ClutterEventSequence
The last remaining undocumented symbol in the API reference according to
gtk-doc.
2012-05-03 11:27:22 +01:00
Tristan Van Berkom
397f322860 ClutterDropAction: Added "drop-cancel" signal.
The drop-cancel signal allows the drop action to cleanup its
state if the can-drop signal is refused. This is especially
useful if the drop action (or its target actor) is managing
any drop target animations.

https://bugzilla.gnome.org/show_bug.cgi?id=675336
2012-05-03 11:20:32 +01:00
Emmanuele Bassi
a2f03d3add docs: Move the easing modes graphs to the AnimationMode docs 2012-05-02 18:40:38 +01:00
Emmanuele Bassi
46409b4043 Move FlowLayout test into examples
There's nothing really test-worthy in the ClutterFlowLayout interactive
test; it can be lifted pretty much as is, and placed into the examples.
2012-05-02 12:14:45 +01:00
Emmanuele Bassi
07c95ebf0c Move examples from tests/interactive to a new top-level
The example code that is meant to be XIncluded into the API reference
should not be part of the interactive test suite: it's code that it is
meant to be used as a reference implementation - whereas the interactive
test suite should be allowed to be lean and test behaviour even in nasty
ways. In short: the test suite should not be the place where we show off
idiomatic code for educational purposes.
2012-05-01 19:00:35 +01:00
Emmanuele Bassi
6db381978e Add missing symbols 2012-04-30 18:35:19 +01:00
Emmanuele Bassi
266c1d7705 docs: Fix typo in the <structname> tag 2012-04-30 17:45:01 +01:00
Emmanuele Bassi
0dd74ca3fb docs: Annotation fixes
The introspection scanner has become slightly more annoying, in the hope
that people start fixing their annotations. As it turns out, it was the
right move.
2012-04-30 17:17:41 +01:00
Emmanuele Bassi
fec0578bfe animatable: Disable deprecation warnings
We are using deprecated API internally.
2012-04-27 14:21:56 +01:00
Emmanuele Bassi
0077c51278 Disable deprecation warnings in deprecated classes
We know we're using deprecated symbols.
2012-04-27 12:38:35 +01:00
Emmanuele Bassi
70091245e8 docs: Specify scroll_to_point() coordinate space 2012-04-27 12:30:50 +01:00
Emmanuele Bassi
bca93c1a75 Deprecate ClutterAlpha
It's time. Now that we have clutter_actor_allocate() respecting the
easing state of an actor, and that the LayoutManager animation virtual
functions have been deprecated, we can put ClutterAlpha on the chopping
block, and be done with it, once and for all.

So long, ClutterAlpha; and thanks for all the fish.
2012-04-27 12:30:50 +01:00
Emmanuele Bassi
999bbe20a5 Add ClutterScrollActor
ClutterScrollActor is an actor that allows showing a portion of its
contents.
2012-04-27 12:30:50 +01:00
Emmanuele Bassi
d28bce4a25 layout-manager: Deprecate the layout animation
This semi-aborted API was broken for various reasons:

  - it strongly depended on ClutterAlpha, a class we're trying to
    deprecate;
  - it requires a lot of boilerplate and copy-and-paste code;
  - it requires a full relayout of the actor tree for something
    that ought to be automatically handled by ClutterActor.

Now that clutter_actor_allocate() handles transitions using the easing
state of the actor, we can deprecate the LayoutManager API for the 1.x
series, and remove it for the 2.x series.
2012-04-27 12:30:50 +01:00
Emmanuele Bassi
30b78a7212 table-layout: Deprecate the animation API
Similar to what we did for ClutterBoxLayout.
2012-04-27 12:30:49 +01:00
Emmanuele Bassi
d1998712e1 box-layout: Deprecate the animation API
BoxLayout will use the easing state of the children it's allocating; the
current API is re-implemented in terms of an implicit easing state
forced on each child prior to allocating it.
2012-04-27 12:30:49 +01:00
Emmanuele Bassi
8ef2c46baa actor: Make :allocation animatable
Calling clutter_actor_allocate() should transition between the current
allocation and the new allocation, by using the defined implementation
of the easing state.

This means that:

  clutter_actor_save_easing_state (actor);
  clutter_actor_allocate (actor, &new_alloc, flags);
  clutter_actor_restore_easing_state (actor);

will cause "actor" to transition between the current allocation and the
desired new allocation.

The trick is to ensure that this happens without invalidating the
entire actor tree, but only the portion of the tree that has the
transitioned actor as the local root. For this reason, we just call the
allocate() implementation from within the transition frame advancement,
without invalidating flags: the actor, after all, *has* a valid
allocation for the duration of the transition.
2012-04-27 12:30:49 +01:00
Emmanuele Bassi
8cb9725699 actor: Ignore allocation flags
Allocation flags are informative, and are only meant to be used to
communicate additional information about the allocation process to
an actor.
2012-04-27 12:30:49 +01:00
Emmanuele Bassi
78aae84d43 actor: Coalesce needs_[xy]_expand() into one method
Use the orientation enumeration instead of a per-axis method.
2012-04-27 12:30:49 +01:00
Emmanuele Bassi
807d77c0f3 box-layout: Add the :orientation property
And deprecate the :vertical property.

An enumeration is clearer, and we can use it elsewhere in the API.
2012-04-27 12:30:49 +01:00
Emmanuele Bassi
5d8b177679 bin-layout: Deprecate BinLayout alignments
We should use the ClutterActor's API for this.
2012-04-27 12:30:49 +01:00
Emmanuele Bassi
26d366a3a5 docs: XInclude the bin layout example 2012-04-27 12:30:49 +01:00
Emmanuele Bassi
6ddc694e68 bin-layout: Use the actor align/expand flags
If an actor is set to expand, we use the actor's horizontal and vertical
alignment values instead of the BinLayout's.
2012-04-27 12:30:49 +01:00
Emmanuele Bassi
473aaf7766 actor: Add private get_effective_x_align() method
A method to retrieve the effective horizontal alignment of the actor,
taking into consideration the text direction.
2012-04-27 12:30:49 +01:00
Emmanuele Bassi
90032e0019 actor: Add basic automatic expand flags
The :x-expand and :y-expand flags on ClutterActor are used to signal
that an actor should expand horizontally and/or vertically - i.e. that
its parent's layout management policy should try to assign extra space
to the actor when allocating it.

The expand flags are automatic: when set on a leaf node in the actor
tree, they will bubble up through the parent and grandparents up to the
top level actor; during allocation, the actors with children will lazily
compute whether their children needs to expand.
2012-04-27 12:30:48 +01:00
Emmanuele Bassi
217c4e7ba0 actor: Remove automatic transition init from add_transition()
Adding an explicit transition overrides any consideration of the easing
state of an actor.
2012-04-27 12:30:48 +01:00
Emmanuele Bassi
0b76ba332d Fixes for the API reference
Typos, missing symbols, and missing documentation.
2012-04-27 12:30:48 +01:00
Emmanuele Bassi
de94b8e634 Add deprecation annotations 2012-04-27 12:30:48 +01:00
Emmanuele Bassi
b4f12cfb83 Deprecate ClutterAnimation, as well as clutter_actor_animate()
ClutterPropertyTransition, and the implicit animation API based on
ClutterTransition and ClutterAnimatable, are enough to replace this
whole API.
2012-04-27 12:30:48 +01:00
Emmanuele Bassi
63e909576a Deprecate State and Animator
The PropertyTransition, KeyframeTransition, and TransitionGroup classes
can effectively replace Animator and State in their common usage.
2012-04-27 12:30:48 +01:00
Emmanuele Bassi
024f6d40d2 keyframe-transition: Add direct accessors for key frames
This should allow modifying key frame details without requiring a full
reset of the KeyframeTransition instance.
2012-04-27 12:30:48 +01:00
Emmanuele Bassi
c500fc1844 Add ClutterTransitionGroup
The TransitionGroup class is a logical container for running multiple
transitions.

TransitionGroup is not a Score: it is a Transition that advances each
Transition it contains using the delta between frames, and ensures that
all transitions are in a consistent state; these transitions are not
advanced by the master clock.
2012-04-27 12:30:48 +01:00
Emmanuele Bassi
edfe618174 timeline: Add an internal function for advancing a timeline
There are cases when we want to advance a timeline from another time
source. We cannot use _clutter_timeline_do_tick() directly, as that
assumes that the timeline is already playing, so we'll need to create a
wrapper that toggles the playing flag around it.
2012-04-27 12:30:48 +01:00
Emmanuele Bassi
270894342e Add ClutterKeyframeTransition
A simple transition class that interpolates a property between key
frames.
2012-04-27 12:30:48 +01:00
Emmanuele Bassi
d24eccd026 interval: Allow passing NULL values to the constructor
Given that we can create a ClutterInterval without an initial and final
values using g_object_new(), it stands to reason that we ought to be
able to create an instance when passing NULL GValue pointers to the
new_with_values() constructor as well.
2012-04-27 12:30:48 +01:00
Emmanuele Bassi
bf12e23199 easing: Add utility functions
We end up copying the same array-of-modes-and-functions code in various
places, so it's better to factor it out.
2012-04-27 12:30:47 +01:00
Emmanuele Bassi
865a682450 actor: Make add_transition() work regardless of easing state
We can add transitions to an actor even if the easing state hasn't been
set beforehand.
2012-04-27 12:30:47 +01:00
Emmanuele Bassi
fe6d284a83 docs: Use the Transition convenience API 2012-04-27 12:30:47 +01:00
Emmanuele Bassi
2470398ede transition: Add interval convenience API
This should cut down the lines and number of objects we have to care
about when dealing with explicit transitions.
2012-04-27 12:30:47 +01:00
Emmanuele Bassi
a9cc06257f docs: Add a reference section for geometric types 2012-04-27 12:30:47 +01:00
Emmanuele Bassi
764068a723 Add version annotation for newly added functions 2012-04-27 12:30:47 +01:00
Emmanuele Bassi
b2feb463bd Add a rect-contains-rect function
Similar to the contains-point one.
2012-04-27 12:30:47 +01:00
Emmanuele Bassi
9c637ccb41 Use an epsilon for float comparison
We tend to use float comparison for structured data types like Vertex,
Point, and Size; we should take into consideration fluctuations in the
floating point representation as well.
2012-04-27 12:30:47 +01:00
Emmanuele Bassi
695621f5ea event: Add distance and angle accessors
Let's start using ClutterPoint in the API.
2012-04-27 12:30:47 +01:00
Emmanuele Bassi
d021cc7c02 Add a function to compute the distance between points 2012-04-27 12:30:47 +01:00
Emmanuele Bassi
bc914bb8a2 Move towards an alloc/init pair for base types
Instead of a single new() constructor that both allocates and
initializes, split the allocation and initialization into two separate
functions for types that are typically used on the stack, and rarely
allocated on the heap, like ClutterPoint and friends.

This is also applied retroactively to ClutterActorBox and ClutterVertex,
given that the same considerations on usage apply to them as well; we
can add a return value to clutter_actor_box_init() and
clutter_vertex_init() in an ABI-compatible way, so that
clutter_actor_box_new() and clutter_vertex_new() can be effectively
reimplemented as "init (alloc ())".
2012-04-27 12:30:47 +01:00
Emmanuele Bassi
0fc4053613 color: Add initializers for ClutterColor
Similar to the ones we have for the other boxed types in Clutter.
2012-04-27 12:30:47 +01:00
Emmanuele Bassi
2276f24ffd script: Support ClutterPoint and ClutterSize
Point and Size can be described both as an array of values or as an
object.
2012-04-27 12:30:46 +01:00
Emmanuele Bassi
7814ec2eb5 actor: Add position and size animatable properties
Using a compound type property for position and size has various
advantages: it reduces the amount of checks; it reduces the amount
of notify signals to connect to; it reduces the amount of transitions
generated.
2012-04-27 12:30:46 +01:00
Emmanuele Bassi
0f3f0d54d2 actor: Use ClutterSize for minimum and natural fixed sizes 2012-04-27 12:30:46 +01:00
Emmanuele Bassi
b7b641d5d3 actor: Use ClutterPoint for the fixed position 2012-04-27 12:30:46 +01:00
Emmanuele Bassi
61f17e345a Add base geometric types
Clutter should provide some more basic geometric types - Point, Size,
Rect - so that we can use them in properties and accessors.
2012-04-27 12:30:46 +01:00
Emmanuele Bassi
d77ca7f7b8 Move the progress function registration to clutter-types.h
Near the definition of ClutterProgressFunc.
2012-04-27 12:28:49 +01:00
Emmanuele Bassi
e2564dd265 Deprecate ClutterCairoTexture
The ClutterCanvas content implementation should be used instead, to
avoid stringing along the ClutterTexture API and implementation.

This change requires some minor surgery, as the deprecated section
already contains an header for the previously deprecated methods; plus,
we don't want to deprecate clutter_cairo_set_source_color(). This means
creating a new header to be used for Cairo-related API.
2012-04-27 12:28:49 +01:00
Emmanuele Bassi
0fca11ec2f path: Avoid integer overflow in get_distance()
The get_distance() API uses machine integers to compute the distance;
this means that on 32bit we can overflow the integer size. This gets
hidden by the fact that get_distance() returns an unsigned integer as
well.

In reality, ClutterPath is an unmitigated mess, and the only way to
actually fix it is to break API.

https://bugzilla.gnome.org/show_bug.cgi?id=652521
2012-04-27 12:28:49 +01:00
Alejandro Piñeiro
9428aaa3cb a11y: stop to use text as the default accessible-name for ClutterText
https://bugzilla.gnome.org/show_bug.cgi?id=672994
2012-04-26 20:01:28 +02:00
Emmanuele Bassi
3cf2bfa3b6 media: Define CLUTTER_DISABLE_DEPRECATION_WARNINGS
We know we're building deprecated API.
2012-04-26 16:59:08 +01:00
Emmanuele Bassi
56b7a4985b macros: Define MIN_REQUIRED as the current version
Otherwise we'll not warn on deprecations introduced in the current
development cycle.
2012-04-26 16:58:23 +01:00
Emmanuele Bassi
14572f4db0 actor: Call show() on set parent conditionally
This commit adds a further conditional check for calling
clutter_actor_show() when adding a child to an actor. We cannot
unconditionally change the value of the show-on-set-parent property like
the original solution of commit 81b19a78f5
as that breaks the document invariant that show-on-set-parent will be
changed iff an actor is without a parent.

The new ADD_CHILD_SHOW_ON_SET_PARENT flag is part of the default and
legacy flags, thus retaining the default behaviour when adding a child;
the flag is not passed when reordering the list of children, which means
we ignore the state of the show-on-set-parent property.

The conformance test suite fully passes, including the newly added test
to verify that changing the paint order does not trigger visibility.

https://bugzilla.gnome.org/show_bug.cgi?id=674510
2012-04-26 14:06:00 +01:00
Emmanuele Bassi
a2f54c59f5 Revert "actor: Unconditionally set show_on_set_parent"
This reverts commit 81b19a78f5.

The commit breaks the conformance test unit for the invariants we
guarantee for the 1.x API:

ERROR:actor-invariants.c:307:actor_show_on_set_parent: assertion failed: (show_on_set_parent)
2012-04-26 14:02:07 +01:00
Emmanuele Bassi
26d8ad7479 Be resilient in case there is no device manager
It's possible to run Clutter with the 'null' input backend, which means
that clutter_device_manager_get_default() may return NULL. In the future
we may add a default dummy device manager, but right now it's safer to
just add a simple NULL check in the places where we ask for the device
manager.
2012-04-26 13:56:00 +01:00
Neil Roberts
f7f8179898 Remove calls to cogl_disable_fog
I can't think of any reason why it would do this and there's no
comment explaining it so let's just remove it. The global fog state
has been removed in Cogl 2.0 so it will cause problems later.

Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
2012-04-25 17:30:17 +01:00
Neil Roberts
107f43a838 clutter-stage-cogl: Use CoglPrimitive for the debug redraw code
CoglVertexBuffer is deprecated so here is a fairly simple replacement
to use the experimental CoglPrimitive API.

Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
2012-04-25 17:30:17 +01:00
Cosimo Cecchi
032870dccc device-manager: select/unselect device events as device change
When a device is added or changes, select/unselect events from X
accordingly.

https://bugzilla.gnome.org/show_bug.cgi?id=673644
2012-04-24 18:49:42 -04:00
Cosimo Cecchi
b746044415 device-manager: don't select events for disabled devices
I.e. only select events for core devices or devices explicitly enabled
by clients.

https://bugzilla.gnome.org/show_bug.cgi?id=673644
2012-04-24 18:49:41 -04:00
Jasper St. Pierre
81b19a78f5 actor: Unconditionally set show_on_set_parent
Otherwise, doing something like adjusting the child's position
on a hidden actor will re-show it, which is not what we want.

https://bugzilla.gnome.org/show_bug.cgi?id=674510
2012-04-24 11:25:42 -04:00
Jasper St. Pierre
0287dc26ad actor: Not-actors don't have metas 2012-04-24 11:25:42 -04:00
Emmanuele Bassi
340775d09b cally: Fix the pkg-config file
Drop a bunch of variables that are not meant to be used by Cally; also,
drop the wrong library name from the Libs key: Clutter has a single
shared library, now.

https://bugzilla.gnome.org/show_bug.cgi?id=674105
2012-04-21 13:46:00 +01:00
Cosimo Cecchi
d61515322a x11/device-manager-xi2: Flip deltas around
Up/down is Y.
2012-04-20 18:33:16 +01:00
Emmanuele Bassi
2a1dcf4008 Deprecate ClutterMedia
The interface looked like a good idea around the time Clutter 0.2 was
out, but in reality we never had a proper, and supported implementation
outside of clutter-gst - thus, ClutterMedia was acting like a wrapper
around GStreamer, leading to hilarious issues of impedence mismatch
between API and all sorts of indirection issues typical of wrong
abstractions.

In theory, ClutterMedia should have been deprecated and removed before
we hit 1.0, but we kept flip-flopping on the issue.

For 2.0, it's time to take it out.

And shoot it in the face.
2012-04-17 18:10:39 +01:00
Jasper St. Pierre
164c6ee741 text: Bubble up a click and quit early for just static text
Static text shouldn't need a cursor position or anything like that,
and it always eats a button press event.

https://bugzilla.gnome.org/show_bug.cgi?id=673190
2012-04-13 14:34:46 -04:00
Emmanuele Bassi
7fffb7290e actor: Return a valid paint volume by default
It's been a year and change, and two stable releases, since we
introduced the paint volume mechanism to allow actors to paint outside
their allocation safely in environments that support clipped redraws.

The time has come to flip the switch, and return a valid paint volume,
matching the actor's allocation, by default - at least for Actor
instances from classes that do not override paint() and
get_paint_volume().

If an actor has a paint signal handler then it's the user responsability
not to paint outside the allocation - and to suffer the consequences of
doing so; in an ideal world, paint() would not be a signal in the first
place anyway. Plus, the idea that painting can happen at any time and
still have a valid surface greatly conflicts with the design goal of
making Clutter's rendering operations fully retained into a render tree.

We can still revert this commit before spinning 1.12, if need be.
2012-04-12 17:50:43 +01:00
Emmanuele Bassi
119a25269e actor: Check for mapped children in the default get_paint_volume()
Unmapped children won't be painted so they should not contribute to the
default paint volume computation.
2012-04-12 17:07:06 +01:00
Emmanuele Bassi
98c9dad42f actor: Clear MetaGroups when empty
When removing the last Action, Constraint, or Effect, we should also be
clearing the corresponding MetaGroup: code inside ClutterActor relies on
NULL checks, and changing them all to check for NULL && n_items == 0
would not be fun.
2012-04-12 17:04:57 +01:00
Peter Hutterer
a66fbd258e Rename XINPUT_2_2 define to HAVE_XINPUT_2_2
configure.ac defines XINPUT_2_2 if XI 2.2 support was found. The code
expects XINPUT_2_2 in the device manager, but HAVE_XINPUT_2_2 in the x11
backend.

On newer X servers, the latter causes a BadValue when XIQueryDevice sends a
different major/minor than gdk's device manager (gnome-control-center).

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

https://bugzilla.gnome.org/show_bug.cgi?id=673961
2012-04-12 11:31:29 +01:00
Emmanuele Bassi
14b9cb4f7b actor: Fix completed transitions logic
We need to remove the transition only if the current repeat is equal to
the number of repeats, and if the transition was marked as remove on
complete. Otherwise, the transition has to remain where it is.
2012-04-11 13:57:06 +01:00
Emmanuele Bassi
ab486bfe70 actor: Remove unnecessary relayout/redraw calls
They will be handled internally.
2012-04-10 13:37:04 +01:00
Emmanuele Bassi
de9112bc8c actor: Do not queue_redraw() in set_opacity()
The opacity internal setter will do it for us, and it will take into
consideration any eventual flatten effect applied to the actor.

This unbreaks the actor-offscreen-redirect conformance test.
2012-04-10 12:59:16 +01:00