appDisplay: Disconnect folder "changed" signal when actors are destroyed
We should disconnect the folders "changed" signal from the folder in case the FolderView or FolderIcon is destroyed. While at it, also remove the unused this._spaceReadySignalId of FolderIcon. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1011
This commit is contained in:
parent
69f6c43b60
commit
989c0ee49e
@ -1324,10 +1324,20 @@ class FolderView extends BaseAppView {
|
||||
action.connect('pan', this._onPan.bind(this));
|
||||
this._scrollView.add_action(action);
|
||||
|
||||
this._folder.connect('changed', this._redisplay.bind(this));
|
||||
this.connect('destroy', this._onDestroy.bind(this));
|
||||
|
||||
this._folderChangedId = this._folder.connect(
|
||||
'changed', this._redisplay.bind(this));
|
||||
this._redisplay();
|
||||
}
|
||||
|
||||
_onDestroy() {
|
||||
if (this._folderChangedId) {
|
||||
this._folder.disconnect(this._folderChangedId);
|
||||
delete this._folderChangedId;
|
||||
}
|
||||
}
|
||||
|
||||
_childFocused(actor) {
|
||||
Util.ensureActorVisibleInScrollView(this._scrollView, actor);
|
||||
}
|
||||
@ -1515,7 +1525,8 @@ var FolderIcon = GObject.registerClass({
|
||||
|
||||
this.connect('destroy', this._onDestroy.bind(this));
|
||||
|
||||
this._folder.connect('changed', this._sync.bind(this));
|
||||
this._folderChangedId = this._folder.connect(
|
||||
'changed', this._sync.bind(this));
|
||||
this._sync();
|
||||
}
|
||||
|
||||
@ -1525,9 +1536,9 @@ var FolderIcon = GObject.registerClass({
|
||||
|
||||
this.view.destroy();
|
||||
|
||||
if (this._spaceReadySignalId) {
|
||||
this._parentView.disconnect(this._spaceReadySignalId);
|
||||
this._spaceReadySignalId = 0;
|
||||
if (this._folderChangedId) {
|
||||
this._folder.disconnect(this._folderChangedId);
|
||||
delete this._folderChangedId;
|
||||
}
|
||||
|
||||
if (this._dialog)
|
||||
|
Loading…
Reference in New Issue
Block a user