From 6ec183451dbcffb5378e546af85bad74482126f3 Mon Sep 17 00:00:00 2001 From: JC Brand Date: Sat, 15 Dec 2018 19:38:09 +0100 Subject: [PATCH] Remove global event listener when appropriate. Otherwise trimChats called in `fullscreen` tests (due to being registered in a previous test) --- dist/converse.js | 20 +++++++++++--------- src/converse-minimize.js | 16 ++++++++-------- src/headless/converse-core.js | 2 +- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/dist/converse.js b/dist/converse.js index f5ee29e6e..3bec0490c 100644 --- a/dist/converse.js +++ b/dist/converse.js @@ -53176,15 +53176,17 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_1__["default"].plugins _converse.emit('minimizedChatsInitialized'); }).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL)); - _converse.on('registeredGlobalEventHandlers', function () { - window.addEventListener("resize", _.debounce(function (ev) { - if (_converse.connection.connected) { - _converse.chatboxviews.trimChats(); - } - }, 200)); - }); + const debouncedTrim = _.debounce(ev => { + if (_converse.connection.connected) { + _converse.chatboxviews.trimChats(); + } + }, 200); - _converse.on('controlBoxOpened', function (chatbox) { + _converse.api.listen.on('registeredGlobalEventHandlers', () => window.addEventListener("resize", debouncedTrim)); + + _converse.api.listen.on('unregisteredGlobalEventHandlers', () => window.removeEventListener("resize", debouncedTrim)); + + _converse.api.listen.on('controlBoxOpened', function (chatbox) { // Wrapped in anon method because at scan time, chatboxviews // attr not set yet. if (_converse.connection.connected) { @@ -62951,7 +62953,7 @@ function finishInitialization() { function unregisterGlobalEventHandlers() { document.removeEventListener("visibilitychange", _converse.saveWindowState); - _converse.emit('registeredGlobalEventHandlers'); + _converse.emit('unregisteredGlobalEventHandlers'); } function cleanup() { diff --git a/src/converse-minimize.js b/src/converse-minimize.js index 8a0244cea..9712f9fdc 100644 --- a/src/converse-minimize.js +++ b/src/converse-minimize.js @@ -517,15 +517,15 @@ converse.plugins.add('converse-minimize', { }).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL)); - _converse.on('registeredGlobalEventHandlers', function () { - window.addEventListener("resize", _.debounce(function (ev) { - if (_converse.connection.connected) { - _converse.chatboxviews.trimChats(); - } - }, 200)); - }); + const debouncedTrim = _.debounce(ev => { + if (_converse.connection.connected) { + _converse.chatboxviews.trimChats(); + } + }, 200); + _converse.api.listen.on('registeredGlobalEventHandlers', () => window.addEventListener("resize", debouncedTrim)); + _converse.api.listen.on('unregisteredGlobalEventHandlers', () => window.removeEventListener("resize", debouncedTrim)); - _converse.on('controlBoxOpened', function (chatbox) { + _converse.api.listen.on('controlBoxOpened', function (chatbox) { // Wrapped in anon method because at scan time, chatboxviews // attr not set yet. if (_converse.connection.connected) { diff --git a/src/headless/converse-core.js b/src/headless/converse-core.js index 2c0331679..913763dcf 100644 --- a/src/headless/converse-core.js +++ b/src/headless/converse-core.js @@ -435,7 +435,7 @@ function finishInitialization () { function unregisterGlobalEventHandlers () { document.removeEventListener("visibilitychange", _converse.saveWindowState); - _converse.emit('registeredGlobalEventHandlers'); + _converse.emit('unregisteredGlobalEventHandlers'); } function cleanup () {