Fixed the problem that lead to xterm malfunction, and upgrade xterm to 4.19.0

This commit is contained in:
Ni Rui
2022-07-23 12:12:17 +08:00
parent b002adaa36
commit 5f1a34a8b9
3 changed files with 11 additions and 34 deletions

14
package-lock.json generated
View File

@@ -53,7 +53,7 @@
"vue-template-compiler": "^2.6.14", "vue-template-compiler": "^2.6.14",
"webpack": "^5.73.0", "webpack": "^5.73.0",
"webpack-cli": "^4.10.0", "webpack-cli": "^4.10.0",
"xterm": "^4.18.0", "xterm": "^4.19.0",
"xterm-addon-fit": "^0.5.0", "xterm-addon-fit": "^0.5.0",
"xterm-addon-web-links": "^0.6.0" "xterm-addon-web-links": "^0.6.0"
} }
@@ -12555,9 +12555,9 @@
} }
}, },
"node_modules/xterm": { "node_modules/xterm": {
"version": "4.18.0", "version": "4.19.0",
"resolved": "https://registry.npmjs.org/xterm/-/xterm-4.18.0.tgz", "resolved": "https://registry.npmjs.org/xterm/-/xterm-4.19.0.tgz",
"integrity": "sha512-JQoc1S0dti6SQfI0bK1AZvGnAxH4MVw45ZPFSO6FHTInAiau3Ix77fSxNx3mX4eh9OL4AYa8+4C8f5UvnSfppQ==", "integrity": "sha512-c3Cp4eOVsYY5Q839dR5IejghRPpxciGmLWWaP9g+ppfMeBChMeLa1DCA+pmX/jyDZ+zxFOmlJL/82qVdayVoGQ==",
"dev": true "dev": true
}, },
"node_modules/xterm-addon-fit": { "node_modules/xterm-addon-fit": {
@@ -21980,9 +21980,9 @@
"dev": true "dev": true
}, },
"xterm": { "xterm": {
"version": "4.18.0", "version": "4.19.0",
"resolved": "https://registry.npmjs.org/xterm/-/xterm-4.18.0.tgz", "resolved": "https://registry.npmjs.org/xterm/-/xterm-4.19.0.tgz",
"integrity": "sha512-JQoc1S0dti6SQfI0bK1AZvGnAxH4MVw45ZPFSO6FHTInAiau3Ix77fSxNx3mX4eh9OL4AYa8+4C8f5UvnSfppQ==", "integrity": "sha512-c3Cp4eOVsYY5Q839dR5IejghRPpxciGmLWWaP9g+ppfMeBChMeLa1DCA+pmX/jyDZ+zxFOmlJL/82qVdayVoGQ==",
"dev": true "dev": true
}, },
"xterm-addon-fit": { "xterm-addon-fit": {

View File

@@ -48,7 +48,7 @@
"vue-template-compiler": "^2.6.14", "vue-template-compiler": "^2.6.14",
"webpack": "^5.73.0", "webpack": "^5.73.0",
"webpack-cli": "^4.10.0", "webpack-cli": "^4.10.0",
"xterm": "^4.18.0", "xterm": "^4.19.0",
"xterm-addon-fit": "^0.5.0", "xterm-addon-fit": "^0.5.0",
"xterm-addon-web-links": "^0.6.0" "xterm-addon-web-links": "^0.6.0"
}, },

View File

@@ -281,7 +281,7 @@ class Term {
}); });
} }
init(root, callbacks) { init(root) {
if (this.closed) { if (this.closed) {
return; return;
} }
@@ -303,9 +303,6 @@ class Term {
// this.term.loadAddon(new WebglAddon()); // this.term.loadAddon(new WebglAddon());
// } // }
this.term.textarea.addEventListener("focus", callbacks.focus);
this.term.textarea.addEventListener("blur", callbacks.blur);
this.refit(); this.refit();
} }
@@ -568,7 +565,7 @@ export default {
root.innerHTML = ""; root.innerHTML = "";
self.term.init(root, callbacks); self.term.init(root);
return; return;
} catch (e) { } catch (e) {
@@ -584,7 +581,7 @@ export default {
callbacks.warn(termTypeFaceLoadError, false); callbacks.warn(termTypeFaceLoadError, false);
self.term.setFont(termFallbackTypeFace); self.term.setFont(termFallbackTypeFace);
self.term.init(root, callbacks); self.term.init(root);
self.retryLoadRemoteFont(termTypeFace, termTypeFaceLoadTimeout, () => { self.retryLoadRemoteFont(termTypeFace, termTypeFaceLoadTimeout, () => {
if (self.term.destroyed()) { if (self.term.destroyed()) {
@@ -602,22 +599,9 @@ export default {
async init() { async init() {
let self = this; let self = this;
self.eventHandlers = {
keyup: (e) => self.localKeypress(e),
keydown: (e) => self.localKeypress(e),
};
await self.openTerm( await self.openTerm(
self.$el.getElementsByClassName("console-console")[0], self.$el.getElementsByClassName("console-console")[0],
{ {
focus(e) {
document.addEventListener("keyup", self.eventHandlers.keyup);
document.addEventListener("keydown", self.eventHandlers.keydown);
},
blur(e) {
document.removeEventListener("keyup", self.eventHandlers.keyup);
document.removeEventListener("keydown", self.eventHandlers.keydown);
},
warn(msg, toDismiss) { warn(msg, toDismiss) {
self.$emit("warning", { self.$emit("warning", {
text: msg, text: msg,
@@ -648,13 +632,6 @@ export default {
fit() { fit() {
this.term.refit(); this.term.refit();
}, },
localKeypress(e) {
if (!e.altKey && !e.shiftKey && !e.ctrlKey) {
return;
}
e.preventDefault();
},
activate() { activate() {
this.term.focus(); this.term.focus();
this.fit(); this.fit();