From bdd15d5452e9b1d836f06ebfc702566a217c2994 Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Tue, 14 Jun 2016 13:40:30 -0400 Subject: [PATCH] FIX: Don't remove all events, only the ones we created --- .../discourse/components/mount-widget.js.es6 | 14 ++++++++++---- .../discourse/components/topic-progress.js.es6 | 2 +- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/assets/javascripts/discourse/components/mount-widget.js.es6 b/app/assets/javascripts/discourse/components/mount-widget.js.es6 index c9310fb66..e62390e69 100644 --- a/app/assets/javascripts/discourse/components/mount-widget.js.es6 +++ b/app/assets/javascripts/discourse/components/mount-widget.js.es6 @@ -16,6 +16,7 @@ export default Ember.Component.extend({ _widgetClass: null, _renderCallback: null, _childEvents: null, + _dispatched: null, init() { this._super(); @@ -31,6 +32,7 @@ export default Ember.Component.extend({ this._childEvents = []; this._connected = []; + this._dispatched = []; }, didInsertElement() { @@ -52,7 +54,10 @@ export default Ember.Component.extend({ }, willDestroyElement() { - this._childEvents.forEach(evt => this.appEvents.off(evt)); + this._dispatched.forEach(evt => { + const [eventName, caller] = evt; + this.appEvents.off(eventName, caller); + }); Ember.run.cancel(this._timeout); }, @@ -73,9 +78,10 @@ export default Ember.Component.extend({ dispatch(eventName, key) { this._childEvents.push(eventName); - this.appEvents.on(eventName, refreshArg => { - this.eventDispatched(eventName, key, refreshArg); - }); + + const caller = refreshArg => this.eventDispatched(eventName, key, refreshArg); + this._dispatched.push([eventName, caller]); + this.appEvents.on(eventName, caller); }, queueRerender(callback) { diff --git a/app/assets/javascripts/discourse/components/topic-progress.js.es6 b/app/assets/javascripts/discourse/components/topic-progress.js.es6 index 97b9f3b54..94c99908a 100644 --- a/app/assets/javascripts/discourse/components/topic-progress.js.es6 +++ b/app/assets/javascripts/discourse/components/topic-progress.js.es6 @@ -95,7 +95,7 @@ export default Ember.Component.extend({ .off("composer:resized", this, this._dock) .off('composer:closed', this, this._dock) .off('topic:scrolled', this, this._dock) - .off('topic:current-post-scrolled') + .off('topic:current-post-scrolled', this, this._topicScrolled) .off('topic-progress:keyboard-trigger'); },