js: Use (dis)connectObject()
Start using the new methods to simplify signal cleanup. For now, focus on replacing existing cleanups; in most cases this means signals connected in the constructor and disconnected on destroy, but also other cases with a similarly defined lifetime (say: from show to hide). This doesn't change signal connections that only exist for a short time (say: once), handlers that are connected on-demand (say: the first time a particular method is called), or connections that aren't tracked (read: disconnected) at all. We will eventually replace the latter with connectObject() as well - especially from actor subclasses - but the changeset is already big enough as-is :-) Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1953>
This commit is contained in:

committed by
Marge Bot

parent
f45ccc9143
commit
26235bbe54
@ -20,7 +20,6 @@ class Dialog extends St.Widget {
|
||||
this.connect('destroy', this._onDestroy.bind(this));
|
||||
|
||||
this._initialKeyFocus = null;
|
||||
this._initialKeyFocusDestroyId = 0;
|
||||
this._pressedKey = null;
|
||||
this._buttonKeys = {};
|
||||
this._createDialog();
|
||||
@ -61,9 +60,7 @@ class Dialog extends St.Widget {
|
||||
}
|
||||
|
||||
makeInactive() {
|
||||
if (this._eventId != 0)
|
||||
this._parentActor.disconnect(this._eventId);
|
||||
this._eventId = 0;
|
||||
this._parentActor.disconnectObject(this);
|
||||
|
||||
this.buttonLayout.get_children().forEach(c => c.set_reactive(false));
|
||||
}
|
||||
@ -99,15 +96,12 @@ class Dialog extends St.Widget {
|
||||
}
|
||||
|
||||
_setInitialKeyFocus(actor) {
|
||||
if (this._initialKeyFocus)
|
||||
this._initialKeyFocus.disconnect(this._initialKeyFocusDestroyId);
|
||||
this._initialKeyFocus?.disconnectObject(this);
|
||||
|
||||
this._initialKeyFocus = actor;
|
||||
|
||||
this._initialKeyFocusDestroyId = actor.connect('destroy', () => {
|
||||
this._initialKeyFocus = null;
|
||||
this._initialKeyFocusDestroyId = 0;
|
||||
});
|
||||
actor.connectObject('destroy',
|
||||
() => (this._initialKeyFocus = null), this);
|
||||
}
|
||||
|
||||
get initialKeyFocus() {
|
||||
|
Reference in New Issue
Block a user