diff --git a/src/web/App.mjs b/src/web/App.mjs index f087b168..e86e7e3b 100755 --- a/src/web/App.mjs +++ b/src/web/App.mjs @@ -241,7 +241,7 @@ class App { action: "setInput", data: { inputNum: inputNum, - silent: true + silent: false } }); } @@ -507,7 +507,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 @@ -546,7 +546,11 @@ class App { } this.autoBakePause = false; - window.dispatchEvent(this.manager.statechange); + + // Dispatch stateChange only if not done by setInput + if (this.uriParams.input) { + window.dispatchEvent(this.manager.statechange); + } } 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(); + } } /**