From 79990f7e015950e4d199917b89c15d402108e712 Mon Sep 17 00:00:00 2001 From: JC Brand Date: Fri, 11 Jan 2019 18:38:09 +0100 Subject: [PATCH] Don't unnecessarily set height on textarea --- CHANGES.md | 1 + dist/converse.js | 8 ++++++-- src/converse-chatview.js | 7 +++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index ed8410204..ee305da4e 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -5,6 +5,7 @@ - Bugfix: MUC commands were being ignored - Bugfix: Multiple rooms shown active in the rooms list - Bugfix: Don't open chats when receiving messages without a `body` +- Bugfix: Typing in the textarea can become very slow in large MUCs - UI: Always show the OMEMO lock icon (grayed out if not available). - Use `publish-options` with `pubsub#access_model` set to `open` when publishing OMEMO public keys and devices - Add a new `converse-pubsub` plugin, for generic PubSub operations diff --git a/dist/converse.js b/dist/converse.js index b3ac28e60..d85433cfd 100644 --- a/dist/converse.js +++ b/dist/converse.js @@ -50420,9 +50420,13 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins }, inputChanged(ev) { - ev.target.style.height = 'auto'; // Fixes weirdness + const new_height = ev.target.scrollHeight + 'px'; - ev.target.style.height = ev.target.scrollHeight + 'px'; + if (ev.target.style.height !== new_height) { + ev.target.style.height = 'auto'; // Fixes weirdness + + ev.target.style.height = new_height; + } }, clearMessages(ev) { diff --git a/src/converse-chatview.js b/src/converse-chatview.js index 4760277eb..b3fc79dde 100644 --- a/src/converse-chatview.js +++ b/src/converse-chatview.js @@ -1008,8 +1008,11 @@ converse.plugins.add('converse-chatview', { }, inputChanged (ev) { - ev.target.style.height = 'auto'; // Fixes weirdness - ev.target.style.height = (ev.target.scrollHeight) + 'px'; + const new_height = ev.target.scrollHeight + 'px'; + if (ev.target.style.height !== new_height) { + ev.target.style.height = 'auto'; // Fixes weirdness + ev.target.style.height = new_height; + } }, clearMessages (ev) {