Changing the output encoding no longer triggers a full bake
This commit is contained in:
parent
406da9fa2c
commit
3893c22275
@ -81,6 +81,9 @@ class StatusBarPanel {
|
|||||||
* @param {Event} e
|
* @param {Event} e
|
||||||
*/
|
*/
|
||||||
eolSelectClick(e) {
|
eolSelectClick(e) {
|
||||||
|
// preventDefault is required to stop the URL being modified and popState being triggered
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
const eolLookup = {
|
const eolLookup = {
|
||||||
"LF": "\u000a",
|
"LF": "\u000a",
|
||||||
"VT": "\u000b",
|
"VT": "\u000b",
|
||||||
@ -106,6 +109,9 @@ class StatusBarPanel {
|
|||||||
* @param {Event} e
|
* @param {Event} e
|
||||||
*/
|
*/
|
||||||
chrEncSelectClick(e) {
|
chrEncSelectClick(e) {
|
||||||
|
// preventDefault is required to stop the URL being modified and popState being triggered
|
||||||
|
e.preventDefault(); // TODO - this breaks the menus when you click the button itself
|
||||||
|
|
||||||
const chrEncVal = parseInt(e.target.getAttribute("data-val"), 10);
|
const chrEncVal = parseInt(e.target.getAttribute("data-val"), 10);
|
||||||
|
|
||||||
if (isNaN(chrEncVal)) return;
|
if (isNaN(chrEncVal)) return;
|
||||||
@ -366,9 +372,9 @@ function hideOnClickOutside(element, instantiatingEvent) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!Object.keys(elementsWithListeners).includes(element)) {
|
if (!Object.prototype.hasOwnProperty.call(elementsWithListeners, element)) {
|
||||||
document.addEventListener("click", outsideClickListener);
|
|
||||||
elementsWithListeners[element] = outsideClickListener;
|
elementsWithListeners[element] = outsideClickListener;
|
||||||
|
document.addEventListener("click", elementsWithListeners[element], false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -378,7 +384,7 @@ function hideOnClickOutside(element, instantiatingEvent) {
|
|||||||
*/
|
*/
|
||||||
function hideElement(element) {
|
function hideElement(element) {
|
||||||
element.classList.remove("show");
|
element.classList.remove("show");
|
||||||
document.removeEventListener("click", elementsWithListeners[element]);
|
document.removeEventListener("click", elementsWithListeners[element], false);
|
||||||
delete elementsWithListeners[element];
|
delete elementsWithListeners[element];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -146,6 +146,8 @@ class OutputWaiter {
|
|||||||
*/
|
*/
|
||||||
chrEncChange(chrEncVal) {
|
chrEncChange(chrEncVal) {
|
||||||
this.outputChrEnc = chrEncVal;
|
this.outputChrEnc = chrEncVal;
|
||||||
|
// Reset the output, forcing it to re-decode the data with the new character encoding
|
||||||
|
this.setOutput(this.currentOutputCache, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -173,10 +175,11 @@ class OutputWaiter {
|
|||||||
/**
|
/**
|
||||||
* Sets the value of the current output
|
* Sets the value of the current output
|
||||||
* @param {string|ArrayBuffer} data
|
* @param {string|ArrayBuffer} data
|
||||||
|
* @param {boolean} [force=false]
|
||||||
*/
|
*/
|
||||||
setOutput(data) {
|
setOutput(data, force=false) {
|
||||||
// Don't do anything if the output hasn't changed
|
// Don't do anything if the output hasn't changed
|
||||||
if (data === this.currentOutputCache) return;
|
if (!force && data === this.currentOutputCache) return;
|
||||||
this.currentOutputCache = data;
|
this.currentOutputCache = data;
|
||||||
|
|
||||||
// If data is an ArrayBuffer, convert to a string in the correct character encoding
|
// If data is an ArrayBuffer, convert to a string in the correct character encoding
|
||||||
|
Loading…
Reference in New Issue
Block a user