After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 668195 - Bump the Clutter dependency
Bump the Clutter dependency
Status: RESOLVED DUPLICATE of bug 678917
Product: mutter
Classification: Core
Component: general
unspecified
Other All
: Normal normal
: ---
Assigned To: mutter-maint
mutter-maint
Depends on: 674510
Blocks:
 
 
Reported: 2012-01-18 17:00 UTC by Emmanuele Bassi (:ebassi)
Modified: 2012-06-26 19:06 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Depend on Clutter >= 1.9.5 (779 bytes, patch)
2012-01-18 17:00 UTC, Emmanuele Bassi (:ebassi)
none Details | Review
Use the new ClutterActor API (10.73 KB, patch)
2012-01-18 17:00 UTC, Emmanuele Bassi (:ebassi)
needs-work Details | Review
Port the default plugin to the new ClutterActor API (2.88 KB, patch)
2012-01-18 17:00 UTC, Emmanuele Bassi (:ebassi)
needs-work Details | Review
Drop deprecated Clutter API (16.82 KB, patch)
2012-02-07 18:31 UTC, Emmanuele Bassi (:ebassi)
none Details | Review
Drop deprecated Clutter API (16.60 KB, patch)
2012-04-21 00:11 UTC, Jasper St. Pierre (not reading bugmail)
none Details | Review

Description Emmanuele Bassi (:ebassi) 2012-01-18 17:00:11 UTC
Clutter deprecated a whole set of API in master, and Mutter should be updated to the new Actor API for adding, removing, and iterating over the list of children.

This is a pretty straightforward port.
Comment 1 Emmanuele Bassi (:ebassi) 2012-01-18 17:00:13 UTC
Created attachment 205542 [details] [review]
Depend on Clutter >= 1.9.5

We're going to update the now deprecated API.
Comment 2 Emmanuele Bassi (:ebassi) 2012-01-18 17:00:20 UTC
Created attachment 205543 [details] [review]
Use the new ClutterActor API

Remove usage of ClutterGroup, ClutterContainer, and ClutterRectangle.

MetaWindowActor and MetaWindowGroup are still inheriting from
ClutterGroup, with the rationale being that Clutter won't be able to
remove the Group class until the 2.0 release anyway.
Comment 3 Emmanuele Bassi (:ebassi) 2012-01-18 17:00:23 UTC
Created attachment 205544 [details] [review]
Port the default plugin to the new ClutterActor API

And drop usage of ClutterGroup and ClutterContainer API.
Comment 4 Colin Walters 2012-01-19 18:17:00 UTC
Are these just purely to remove deprecation warnings, or do they actually fix any bugs?

In other words was the shell-broken-with-clutter issue bugs on the shell side?  Clutter side?
Comment 5 Emmanuele Bassi (:ebassi) 2012-01-19 18:28:00 UTC
these are just for removing the warnings, but I found out that there are some regressions, so I'll need to clean the patches up and do a more thorough testing.

unpatched mutter and gnome-shell work with clutter ≥ 1.9.6, except for a couple of criticals coming from clutter_container_remove_actor() which I have yet to track down (too many moving parts).
Comment 6 Emmanuele Bassi (:ebassi) 2012-02-07 18:31:06 UTC
Created attachment 207010 [details] [review]
Drop deprecated Clutter API

Still broken; it appears that something, either in Mutter or in the Shell, is messing around with the stacking order. After
applying this commit, I get all the windows (not reactive) from every workspace displayed on the current workspace - except
in the overview.
Comment 7 Emmanuele Bassi (:ebassi) 2012-02-07 18:42:11 UTC
additional observation: this also happened when I deferred ClutterGroup's implementation to the ClutterActor default one, so it appears that something is relying on internal details of ClutterGroup. it's definitely localized in either mutter or the shell, as StContainer reimplements Group, so it should be safe.
Comment 8 Jasper St. Pierre (not reading bugmail) 2012-03-18 07:10:25 UTC
(In reply to comment #6)
> Created an attachment (id=207010) [details] [review]
> Drop deprecated Clutter API
> 
> Still broken; it appears that something, either in Mutter or in the Shell, is
> messing around with the stacking order.

One such place: switching workspaces outside of the overview.
http://git.gnome.org/browse/gnome-shell/tree/js/ui/windowManager.js#n427

We take the window actors in mutter, reparent them into our own ClutterGroup, and animate them, meanwhile Mutter decides that it needs to sync the stacking order, calling raise/lower and all that fun stuff.

Wonderful.
Comment 9 Jasper St. Pierre (not reading bugmail) 2012-04-21 00:09:31 UTC
(In reply to comment #6)
> Still broken; it appears that something, either in Mutter or in the Shell, is
> messing around with the stacking order. After
> applying this commit, I get all the windows (not reactive) from every workspace
> displayed on the current workspace - except
> in the overview.

This is a Clutter bug. Bug #674510. Has patches, although you may not like them.
Comment 10 Jasper St. Pierre (not reading bugmail) 2012-04-21 00:11:45 UTC
Created attachment 212476 [details] [review]
Drop deprecated Clutter API

Fix up mutter to use the Clutter 2.0 API instead of the deprecated
Clutter 1.0 API. The changes here are very minimal, and probably are
the minimum changes required to get rid of the deprecation warnings.

In the future, we may want to look at using more Clutter features,
such as layout managers, the implicit animations API, and more.


Two changes here:

  1) In sync_actor_stacking, we check if we 'own' the actor
     before trying to change it. gnome-shell (and the mutter default plugin)
     reparents an actor to a new group before checking it.

  2) Remove a newly deprecated piece of API, clutter_stage_get_color, in
     favor of clutter_actor_get_background_color.
Comment 11 Jasper St. Pierre (not reading bugmail) 2012-06-26 19:06:15 UTC
Thanks for the bug report. This particular bug has already been reported into our bug tracking system, but please feel free to report any further bugs you find.


New patches in #678917, which also includes fixes for the default plugin.

*** This bug has been marked as a duplicate of bug 678917 ***