window-clone: Fix signal connections when the window is closed
Commit 91d8a32f25
let WindowClone forward the size-changed signal
of the "real" window, disconnecting the signal handler when the
clone is destroyed. In case the clone was destroyed due to the
MetaWindowActor being closed, this results in a warning
(gsignal.c:2392: instance `0x2a3fac0' has no handler with id `2955').
Handle the case where the original window is destroyed before its
clone.
This commit is contained in:
parent
7637afe7dc
commit
00df20c618
@ -107,6 +107,8 @@ WindowClone.prototype = {
|
||||
this._sizeChangedId = this.realWindow.connect('size-changed', Lang.bind(this, function() {
|
||||
this.emit('size-changed');
|
||||
}));
|
||||
this._realWindowDestroyId = this.realWindow.connect('destroy',
|
||||
Lang.bind(this, this._disconnectRealWindowSignals));
|
||||
|
||||
this.actor.connect('button-release-event',
|
||||
Lang.bind(this, this._onButtonRelease));
|
||||
@ -160,10 +162,19 @@ WindowClone.prototype = {
|
||||
}
|
||||
},
|
||||
|
||||
_onDestroy: function() {
|
||||
this.realWindow.disconnect(this._sizeChangedId);
|
||||
_disconnectRealWindowSignals: function() {
|
||||
if (this._sizeChangedId > 0)
|
||||
this.realWindow.disconnect(this._sizeChangedId);
|
||||
this._sizeChangedId = 0;
|
||||
|
||||
if (this._realWindowDestroyId > 0)
|
||||
this.realWindow.disconnect(this._realWindowDestroyId);
|
||||
this._realWindowDestroyId = 0;
|
||||
},
|
||||
|
||||
_onDestroy: function() {
|
||||
this._disconnectRealWindowSignals();
|
||||
|
||||
this.metaWindow._delegate = null;
|
||||
this.actor._delegate = null;
|
||||
if (this._zoomLightbox)
|
||||
|
Loading…
Reference in New Issue
Block a user