Extension porting issue for 45→46 with St.ScrollView
The Port Extensions to GNOME Shell 46 page states that Clutter.Container.add_actor()
must be replaced by Clutter.Actor.add_child()
. We did this for the hamster shell extension. It worked for GNOME 46.
To my understanding, this replacement should be backward compatible; the commit message of 350cd296 in gnome-shell!3010 (merged) says that "These have been long deprecated over in clutter, and (via several vtables) simply forward the call to the equivalent ClutterActor methods".
But it turned out that this change broke the layout of a St.ScrollView widget in the extension in GNOME 45. See this comment and follow-ups.
After some experimentation, we found out that we can still use St.ScrollView.add_actor()
, which works in both GNOME 45 and 46. This seems to be an exception from the general statement that add_actor()
isn't supported any more. It's non-obvious for extension authors which widgets still support add_actor()
in GNOME 46, and which don't.
The documentation on the porting page should be extended/improved to clarify this.