|
@@ -44,24 +44,40 @@ class InspectorManager implements IInspector {
|
|
|
return;
|
|
|
}
|
|
|
this._inspector = inspector;
|
|
|
+ // If an inspector was added and it has no source
|
|
|
+ if (inspector && !inspector.source) {
|
|
|
+ inspector.source = this._source;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* The source of events the inspector panel listens for.
|
|
|
*/
|
|
|
get source(): Inspector.IInspectable {
|
|
|
- if (this._inspector && !this._inspector.isDisposed) {
|
|
|
- return this._inspector.source;
|
|
|
- }
|
|
|
- return null;
|
|
|
+ return this._source;
|
|
|
}
|
|
|
set source(source: Inspector.IInspectable) {
|
|
|
+ if (this._source !== source) {
|
|
|
+ if (this._source) {
|
|
|
+ this._source.disposed.disconnect(this._onSourceDisposed);
|
|
|
+ }
|
|
|
+ this._source = source;
|
|
|
+ this._source.disposed.connect(this._onSourceDisposed);
|
|
|
+ }
|
|
|
if (this._inspector && !this._inspector.isDisposed) {
|
|
|
- this._inspector.source = source;
|
|
|
+ this._inspector.source = this._source;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Handle the source disposed signal.
|
|
|
+ */
|
|
|
+ private _onSourceDisposed() {
|
|
|
+ this._source = null;
|
|
|
+ }
|
|
|
+
|
|
|
private _inspector: Inspector = null;
|
|
|
+ private _source: Inspector.IInspectable = null;
|
|
|
}
|
|
|
|
|
|
|