Commit Graph

9200 Commits

Author SHA1 Message Date
Emmanuele Bassi
9424e995fa actor: Improve conditions for skipping implicit transitions
The "should this implicit transition be skipped" check should live into
its own function, where we can actually explain what it does and which
conditions should be respected.

Instead of just blindly skipping actors that are unmapped, or haven't
been painted yet, we should add a couple of escape hatches.

First of all, we don't want :allocation to be implicitly animated until
we have been painted (thus allocated) once; this avoids actors "flying
in" into their allocation.

We also want to allow implicit transitions on the opacity even if we
haven't been painted yet; the internal optimization that we employ in
clutter_actor_paint() and skips painting fully transparent actors is
exactly that: an internal optimization. Caller code should not be aware
of this change, and it should not influence code outside of ClutterActor
itself.

The rest of the conditions are the same: if the easing state's duration
is zero, or if the actor is both unmapped and not in a cloned branch of
the scene graph, then implicit transitions are pointless, as they won't
be painted.

https://bugzilla.gnome.org/show_bug.cgi?id=698766
2013-05-06 10:04:22 -07:00
Emmanuele Bassi
f92b78781d stage: Use precomputed constants instead of trigonometric functions
This should actually ensure that the calculations of the Z translation
for the projection matrix is resolved to "variable * CONSTANT". The
original factors are left in code so it's trivial to revert to the
trigonometric operations if need be, even without reverting this commit.
2013-05-06 10:04:22 -07:00
Emmanuele Bassi
d061a47573 stage: Add a paint callback
The ClutterActor::paint signal is deprecated, and connecting to it even
to get notifications will disable clipped redraws because of violations
of the paint volume.

The only actual valid use case for notifications of a successful frame
is on the ClutterStage, so we should add new (experimental) API for it,
so that users can actually subscribe to it — at least if you're writing
a compositor.

Shoving a signal in a performance critical path is not an option, and
I'm not sure I want to commit to an API like this yet. I reserve the
right to revisit this decision in the future.

https://bugzilla.gnome.org/show_bug.cgi?id=698783
2013-05-06 10:04:21 -07:00
Emmanuele Bassi
264c67c2aa canvas: Allow invalidating the content along with the size
Currently, clutter_canvas_set_size() causes invalidation of the canvas
contents only if the newly set size is different. There are cases when
we want to invalidate the content regardless of the size set, but we
cannot do that right now without possibly causing two invalidations,
for instance:

  clutter_canvas_set_size (canvas, new_width, new_height);
  clutter_content_invalidate (canvas);

will cause two invalidations if the newly set size is different than
the existing one. One way to work around it is to check the current
size of the canvas and either call set_size() or invalidate() depending
on whether the size differs or not, respectively:

  g_object_get (canvas, "width", &width, "height", &height, NULL);
  if (width != new_width || height != new_height)
    clutter_canvas_set_size (canvas, new_width, new_height);
  else
    clutter_content_invalidate (canvas);

this, howevere, implies knowledge of the internals of ClutterCanvas,
and of its optimizations — and encodes a certain behaviour in third
party code, which makes changes further down the line harder.

We could remove the optimization, and just issue an invalidation
regardless of the surface size, but it's not something I'd be happy to
do. Instead, we can add a new function specifically for ClutterCanvas
that causes a forced invalidation regardless of the size change. If we
ever decide to remove the optimization further down the road, we can
simply deprecate the function, and make it an alias of invalidate()
or set_size().
2013-05-06 10:03:54 -07:00
Erick Pérez Castellanos
b6f4a8014e Remove ClutterKnot: Clean clutter2-sections.txt 2013-05-04 10:31:10 -04:00
Erick Pérez Castellanos
d2fbe4db1b Removed unused ClutterKnot
Migration Complete. When you want to use ClutterKnot
use ClutterPoint instead.
Updated clutter.symbols to pass 'make check'
2013-05-03 10:16:25 -04:00
Erick Pérez Castellanos
29271a2d73 Updated doc example to use ClutterPoint. 2013-05-03 10:11:25 -04:00
Erick Pérez Castellanos
b1fa6434e1 Migrated ClutterPathNode to use ClutterPoint
Removed the use of ClutterKnot almost everywhere
Updated casting to get the data from the variable arguments list
2013-05-03 10:11:25 -04:00
Erick Pérez Castellanos
7c6d0251dd Migrated internal ClutterBezier to float.
Initial stage of ClutterPath migration to using float.
Naive implementation of ClutterBezier, for now the points along
the curve doesn't move at a regular speed. It is required a more
precise calculation of the length of the curve for that to happen.
Anyway the old implementation worked like this.
2013-05-03 10:11:25 -04:00
Matej Urbančič
dc5284681c Updated Slovenian translation 2013-05-02 00:10:56 +02:00
Alban Crequy
2be42c333a ClutterDragAction: do not dereference a NULL priv->stage
When destroying an actor during a drag-action with a drag_handle, the
ClutterDragAction's priv->stage could be set to NULL in _set_actor().
_dispose() must not assume that priv->stage is not NULL.

See also https://bugzilla.gnome.org/show_bug.cgi?id=681814
2013-04-30 17:44:51 +01:00
Alban Crequy
a0d9eaf15d fix crash when destroying an actor during a drag-action with a drag_handle
Bug introduced by commit 59801ef8 (drag-action: fix press coords transform
with drag_handle) for bgo#681746.

See also https://bugzilla.gnome.org/show_bug.cgi?id=681814
2013-04-29 18:07:03 +01:00
Emilio Pozuelo Monfort
5586b0deba GDK: fix build when the X11 backend is disabled
https://bugzilla.gnome.org/show_bug.cgi?id=695710
2013-04-29 08:56:21 +02:00
Dimitris Spingos
a25e801ce9 Updated Greek translation 2013-04-27 06:16:24 +03:00
Marek Černocký
3893448e0a Updated Czech translation 2013-04-27 01:38:13 +02:00
Marek Černocký
51cc17fb2b Updated Czech translation 2013-04-27 01:37:40 +02:00
Daniel Mustieles
0d8304087b Updated Spanish translation 2013-04-25 12:36:45 +02:00
Lionel Landwerlin
f66108e43a zoom-action: improve zooming behavior
https://bugzilla.gnome.org/show_bug.cgi?id=698674
2013-04-23 17:36:47 +01:00
Lionel Landwerlin
5a7a6ebfc4 gesture-action: refactor event handling function
https://bugzilla.gnome.org/show_bug.cgi?id=698671
2013-04-23 17:36:47 +01:00
Lionel Landwerlin
321553b139 gesture-action: fix trigger edge after behavior with more than 1 point
https://bugzilla.gnome.org/show_bug.cgi?id=698669
2013-04-23 17:36:47 +01:00
Lionel Landwerlin
fda406b4a8 gesture-action: add n-touch-points property
https://bugzilla.gnome.org/show_bug.cgi?id=698668
2013-04-23 17:36:47 +01:00
Lionel Landwerlin
9cb6276255 zoom-action: improve zooming behavior
https://bugzilla.gnome.org/show_bug.cgi?id=698674
2013-04-23 17:34:39 +01:00
Lionel Landwerlin
221fa225b3 gesture-action: refactor event handling function
https://bugzilla.gnome.org/show_bug.cgi?id=698671
2013-04-23 17:34:39 +01:00
Lionel Landwerlin
04f20909e3 gesture-action: fix trigger edge after behavior with more than 1 point
https://bugzilla.gnome.org/show_bug.cgi?id=698669
2013-04-23 17:34:39 +01:00
Lionel Landwerlin
2b25b056ad gesture-action: add n-touch-points property
https://bugzilla.gnome.org/show_bug.cgi?id=698668
2013-04-23 17:34:39 +01:00
Lionel Landwerlin
ed92f63f30 gesture-action: avoid shadowing time() syscall function
https://bugzilla.gnome.org/show_bug.cgi?id=698668
2013-04-23 17:33:23 +01:00
Lionel Landwerlin
1ee07e5d48 gesture-action: fix typo
https://bugzilla.gnome.org/show_bug.cgi?id=698668
2013-04-23 17:33:20 +01:00
Lionel Landwerlin
82e5634117 gesture-action: avoid shadowing time() syscall function
https://bugzilla.gnome.org/show_bug.cgi?id=698668
2013-04-23 17:28:41 +01:00
Lionel Landwerlin
d691761985 gesture-action: fix typo
https://bugzilla.gnome.org/show_bug.cgi?id=698668
2013-04-23 17:28:34 +01:00
Piotr Drąg
06bb6f4c18 Updated POTFILES.in 2013-04-05 22:50:36 +02:00
Enrico Nicoletto
76ee3e7671 Updated Brazilian Portuguese translation 2013-04-05 16:51:15 -03:00
Emmanuele Bassi
4d7a2cdcf4 2.0: Update POTFILES.in 2013-04-05 18:48:04 +01:00
Emmanuele Bassi
af2f9857fe 2.0: Update the symbols file 2013-04-05 18:48:04 +01:00
Emmanuele Bassi
25b9fad698 2.0: Clean up the Clutter API reference 2013-04-05 18:48:04 +01:00
Emmanuele Bassi
b0f3192802 2.0: Fix up documentation annotations 2013-04-05 18:48:04 +01:00
Emmanuele Bassi
ca3e1b4d11 2.0: Include clutter headers conditionally in clutter-x11.h
We want to avoid clutter-x11.h leaking Clutter symbols (i.e. you need to
include clutter.h yourself before including clutter-x11.h), but we need
to do so conditionally, so that ancillary stuff like gtk-doc and
g-ir-scanner get the right types while building Clutter itself.
2013-04-05 18:48:03 +01:00
Emmanuele Bassi
b4758c3526 2.0: Fix up the versioning macros 2013-04-05 18:48:03 +01:00
Emmanuele Bassi
08a36c3e28 2.0: Remove unused enumerations 2013-04-05 18:48:03 +01:00
Emmanuele Bassi
93b965f71d 2.0: Remove deprecated symbols from the tree
And fix the fallout.
2013-04-05 18:48:03 +01:00
Emmanuele Bassi
408d29bfde 2.0: Update symbols file 2013-04-05 18:48:03 +01:00
Emmanuele Bassi
5e44d7de08 2.0: Fix up the ignore file 2013-04-05 18:48:03 +01:00
Emmanuele Bassi
2e8eab9db4 2.0: Update cally-atkcomponent-example
Drop the deprecated API; the test has not been re-enabled yet, to allow
for review.
2013-04-05 18:48:03 +01:00
Emmanuele Bassi
0e9709f666 2.0: Disable Cally tests 2013-04-05 18:48:03 +01:00
Emmanuele Bassi
2bb7cafee7 2.0: Prune performance test suite 2013-04-05 18:48:03 +01:00
Emmanuele Bassi
e7f8c27021 2.0: Prune micro-bench test suite 2013-04-05 18:48:03 +01:00
Emmanuele Bassi
9720a59482 2.0: Prune interactive test suite 2013-04-05 18:48:03 +01:00
Emmanuele Bassi
1ff3011cb7 2.0: Prune conformance test suite 2013-04-05 18:48:03 +01:00
Emmanuele Bassi
8d181c46d9 2.0: Remove unused arguments from doc annotations 2013-04-05 18:48:02 +01:00
Emmanuele Bassi
1057223227 2.0: Remove compatibility header from keysyms update script 2013-04-05 18:48:02 +01:00
Emmanuele Bassi
5ec07ec8c5 2.0: Update gitignore file 2013-04-05 18:48:02 +01:00