Fix JSObject leak in workspace.js
https://bugzilla.gnome.org/show_bug.cgi?id=612318
This commit is contained in:
parent
9a2d883cf5
commit
46bce04788
@ -37,6 +37,10 @@ _Draggable.prototype = {
|
||||
if (!manualMode)
|
||||
this.actor.connect('button-press-event',
|
||||
Lang.bind(this, this._onButtonPress));
|
||||
|
||||
this.actor.connect('destroy', Lang.bind(this, function() {
|
||||
this.disconnectAll();
|
||||
}));
|
||||
this._onEventId = null;
|
||||
|
||||
this._buttonDown = false; // The mouse button has been pressed and has not yet been released.
|
||||
|
@ -199,8 +199,12 @@ WindowClone.prototype = {
|
||||
},
|
||||
|
||||
_onDestroy: function() {
|
||||
this.metaWindow._delegate = null;
|
||||
this.actor._delegate = null;
|
||||
if (this._zoomLightbox)
|
||||
this._zoomLightbox.destroy();
|
||||
|
||||
this.disconnectAll();
|
||||
},
|
||||
|
||||
_onEnter: function (actor, event) {
|
||||
@ -1370,7 +1374,7 @@ Workspace.prototype = {
|
||||
Mainloop.source_remove(this._repositionWindowsId);
|
||||
this._repositionWindowsId = 0;
|
||||
}
|
||||
Main.overview.connect('hidden', Lang.bind(this,
|
||||
this._overviewHiddenId = Main.overview.connect('hidden', Lang.bind(this,
|
||||
this._doneLeavingOverview));
|
||||
|
||||
// Position and scale the windows.
|
||||
@ -1479,6 +1483,10 @@ Workspace.prototype = {
|
||||
},
|
||||
|
||||
_onDestroy: function(actor) {
|
||||
if (this._overviewHiddenId) {
|
||||
Main.overview.disconnect(this._overviewHiddenId);
|
||||
this._overviewHiddenId = 0;
|
||||
}
|
||||
Tweener.removeTweens(actor);
|
||||
|
||||
this._metaWorkspace.disconnect(this._windowAddedId);
|
||||
@ -1493,6 +1501,7 @@ Workspace.prototype = {
|
||||
// the desktop window, which is never reparented
|
||||
for (let w = 1; w < this._windows.length; w++)
|
||||
this._windows[w].destroy();
|
||||
this._windows = [];
|
||||
},
|
||||
|
||||
// Sets this.leavingOverview flag to false.
|
||||
|
Loading…
Reference in New Issue
Block a user