From fc40580dce944a36b2a15e8afa0278407bc58f27 Mon Sep 17 00:00:00 2001 From: zb3 Date: Fri, 5 Apr 2024 18:48:45 +0200 Subject: [PATCH] Avoid calling inputChange when setting encoding inside loadURIParams Otherwise the debounce logic sometimes causes the input to be overriden by the previous value. --- src/web/App.mjs | 2 +- src/web/waiters/InputWaiter.mjs | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/web/App.mjs b/src/web/App.mjs index 53070e26..8dcb959a 100755 --- a/src/web/App.mjs +++ b/src/web/App.mjs @@ -502,7 +502,7 @@ class App { // Input Character Encoding // Must be set before the input is loaded if (this.uriParams.ienc) { - this.manager.input.chrEncChange(parseInt(this.uriParams.ienc, 10), true); + this.manager.input.chrEncChange(parseInt(this.uriParams.ienc, 10), true, true); } // Output Character Encoding diff --git a/src/web/waiters/InputWaiter.mjs b/src/web/waiters/InputWaiter.mjs index bffca98c..637f827c 100644 --- a/src/web/waiters/InputWaiter.mjs +++ b/src/web/waiters/InputWaiter.mjs @@ -217,11 +217,13 @@ class InputWaiter { * @param {number} chrEncVal * @param {boolean} [manual=false] */ - chrEncChange(chrEncVal, manual=false) { + chrEncChange(chrEncVal, manual=false, internal=false) { if (typeof chrEncVal !== "number") return; this.inputChrEnc = chrEncVal; this.encodingState = manual ? 2 : this.encodingState; - this.inputChange(); + if (!internal) { + this.inputChange(); + } } /**