[gnome-shell] window-clone: Fix signal connections when the window is closed
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] window-clone: Fix signal connections when the window is closed
- Date: Thu, 3 Feb 2011 18:40:31 +0000 (UTC)
commit 00df20c6184b6ebf912151607c7503f9bf60326e
Author: Florian Müllner <fmuellner gnome org>
Date: Thu Feb 3 19:25:59 2011 +0100
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.
js/ui/workspace.js | 15 +++++++++++++--
1 files changed, 13 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/workspace.js b/js/ui/workspace.js
index cf3feb5..ebb3f1e 100644
--- a/js/ui/workspace.js
+++ b/js/ui/workspace.js
@@ -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)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]