Revert all the work that happened on the master branch. Sadly, this is the only way to merge the current development branch back into master. It is now abundantly clear that I merged the 1.99 branch far too soon, and that Clutter 2.0 won't happen any time soon, if at all. Since having the development happen on a separate branch throws a lot of people into confusion, let's undo the clutter-1.99 → master merge, and move back the development of Clutter to the master branch. In order to do so, we need to do some surgery to the Git repository. First, we do a massive revert in a single commit of all that happened since the switch to 1.99 and the API version bump done with the 89a2862 commit. The history is too long to be reverted commit by commit without being extremely messy.
We rely on having the DISPLAY environment variable set, otherwise we default to skipping all tests automatically. The TestEnvironment key inside the installed test launcher keyfile replaces the whole environment, instead of just adding to it like the TESTS_ENVIRONMENT automake variable.
If you call clutter_main_quit() without calling clutter_main() [ South Park ski instructor] You're going to have a bad time.
The easing state is part of the AnimationInfo structure, which is stored inside the GObject's datalist. Each instance frees the data stored there during finalization, so there is no point for us to restore an easing state (which may or may not be the last one) just to have everything cleared out once we chain up to GObject's own finalize() implementation.
Clarifies the intent for everybody.
This reverts commit fcc67e9. It seems this causes some recursion overflow in GNOME Shell's usage of constraints, and needs more investigation.
The update_allocation() method returns TRUE if the allocation was changed.
Constraints can only update an existing allocation, which means they live only halfway through the layout management system used by Clutter; this limitation makes it impossible, for instance, to query the preferred size of an actor, if the actor is only using constraints to manage its own size.
The syntax for some introspection annotations has changed between 1.38 and 1.39, so we need to bump up the dependency in order to get the new scanner. Introspection should be updated in lock-step with GLib, so we should also bump up the required GLib version.
In case the ClutterContent changes, and the actor uses the content's preferred size to drive its own.
The core pointer concept doesn't really exist anymore in an XI2 world, so the clutter API is a bit of a mismatch with what X provides. Using XIGetClientPointer doesn't really help, as far as i can tell the semantics of XIGetClientPointer are essentially: Whatever the X server picked when it had to reply with device-dependant data to a query without a device specifier. Not very useful... To make matters worse, whether XIGetClientPointer returns a valid pointer depends on whether there has been a query that forced it to pick one in the first place, making the whole thing pretty non-deterministic. This patch changes things around such that instead of using XIGetClientPointer to determine the core pointer, we simply pick the first master pointer device. In practise this will essentially always be the X virtual core pointer. https://bugzilla.gnome.org/show_bug.cgi?id=729462
XIGetClientPointer() may return the device id '0' when called early. This patch makes pointer cursors work in nested mutter Wayland sessions again. https://bugzilla.gnome.org/show_bug.cgi?id=729462