Skip to content

[3.38] clutter/timeline: Clear stage view listener when actor destroyed

Jonas Ådahl requested to merge cherry-pick-4145fbba into gnome-3-38

We might have a stage view listener attached to the stage itself if the actor didn't have a suitable frame clock when the actor was associated with the timeline. We'd then listen to stage-views-changed signals on the stage itself to be able to attach to a frame clock when one appeared.

What went wrong is that if an actor that didn't have a frameclock was associated with a timeline, but then destroyed, the timeline would disassociate itself from the actor, but it'd still listen on the stage-views-changed signal on the stage. This would be in itself harmless, until the timeline itself is destroyed, as at this point, it wouldn't clean up the stage-views-changed listener on the stage, as it's assumed to only be valid when there is an actor attached.

Fix this issue by cleaning up the stage's stage-views-changed listener when the actor is destroyed, as we wouldn't be able to make use of it by then anyway.

Closes: gnome-shell#3323 (closed) Part-of: !1719 (merged)

(cherry picked from commit 4145fbba)

Merge request reports