appDisplay: Stop watching FolderIcon parent view when destroyed
When a FolderIcon is opened, it asks the parent view to allocate space for it, which takes time. Eventually, the space-ready signal is emitted on the view and the icon can make use of the new space with its popup. If the icon gets destroyed in the interim, though, space-ready signal handler still fires. This commit disconnects the signal handler so it doesn't get called on a destroyed icon. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/628
This commit is contained in:
parent
da9f37e629
commit
49260a85ad
@ -1155,6 +1155,11 @@ var FolderIcon = class FolderIcon {
|
||||
onDestroy() {
|
||||
this.view.actor.destroy();
|
||||
|
||||
if (this._spaceReadySignalId) {
|
||||
this._parentView.disconnect(this._spaceReadySignalId);
|
||||
this._spaceReadySignalId = 0;
|
||||
}
|
||||
|
||||
if (this._popup)
|
||||
this._popup.actor.destroy();
|
||||
}
|
||||
@ -1226,8 +1231,9 @@ var FolderIcon = class FolderIcon {
|
||||
}
|
||||
|
||||
_openSpaceForPopup() {
|
||||
let id = this._parentView.connect('space-ready', () => {
|
||||
this._parentView.disconnect(id);
|
||||
this._spaceReadySignalId = this._parentView.connect('space-ready', () => {
|
||||
this._parentView.disconnect(this._spaceReadySignalId);
|
||||
this._spaceReadySignalId = 0;
|
||||
this._popup.popup();
|
||||
this._updatePopupPosition();
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user