messageTray: Split out policy creation

The _createPolicy() method of a subclass usually depends on some
constructor parameters that need to be set before chaining up to
the parent. This works fine with Lang.Class, but will break with
ES6 classes, as "this" is only initialized after chaining up.

Prepare for this by not creating the policy in the constructor,
but when it is first accessed.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/350
This commit is contained in:
Florian Müllner 2017-11-01 19:21:31 +01:00 committed by Florian Müllner
parent 467b7c1bca
commit 8f15193b40

View File

@ -701,7 +701,13 @@ var Source = new Lang.Class({
this.notifications = [];
this.policy = this._createPolicy();
this._policy = null;
},
get policy() {
if (!this._policy)
this._policy = this._createPolicy();
return this._policy;
},
get count() {