GNOME Bugzilla – Bug 668195
Bump the Clutter dependency
Last modified: 2012-06-26 19:06:15 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.
Created attachment 205542 [details] [review] Depend on Clutter >= 1.9.5 We're going to update the now deprecated API.
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.
Created attachment 205544 [details] [review] Port the default plugin to the new ClutterActor API And drop usage of ClutterGroup and ClutterContainer API.
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?
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).
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.
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.
(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.
(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.
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.
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 ***