signalTracker: Explicitly register destroyable types
We currently assume that any '::destroy' signal on a GObject type has the semantics of the ClutterActor/GtkWidget signal, and should therefore result in all signals being disconnected. But we already have a case where the assumption doesn't hold: ShellWM uses '::destroy' for the closing animation of windows, and the ShellWM object itself remains very valid after the emission. So rather than making assumptions about '::destroy', check objects against a list of destroyable types that are explicitly registered as such. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2226>
This commit is contained in:

committed by
Marge Bot

parent
ba23279f1f
commit
fc4f9f61fa
@ -345,6 +345,8 @@ function init() {
|
||||
SignalTracker.addObjectSignalMethods(prototype);
|
||||
};
|
||||
|
||||
SignalTracker.registerDestroyableType(Clutter.Actor);
|
||||
|
||||
// Miscellaneous monkeypatching
|
||||
_patchContainerClass(St.BoxLayout);
|
||||
|
||||
|
Reference in New Issue
Block a user