未验证 提交 d723b5fa 编写于 作者: G GitSquared

🐛 Fix fsDisp not following tabs & tab titles

上级 bc66a57d
......@@ -295,6 +295,9 @@ initGreeter = () => {
})
};
window.currentTerm = 0;
window.term[0].onprocesschange = p => {
document.getElementById("shell_tab0").innerText = "MAIN - "+p;
};
// Prevent losing hardware keyboard focus on the terminal when using touch keyboard
window.onmouseup = (e) => {
window.term[window.currentTerm].term.focus();
......@@ -316,6 +319,14 @@ initGreeter = () => {
window.themeChanger = (theme) => {
window.focusShellTab(0);
for (let i = 1; i <= 4; i++) {
if (typeof window.term[i] !== undefined) {
window.term[i].socket.close();
delete window.term[i];
document.getElementById("shell_tab"+i).innerText = "EMPTY";
document.getElementById("terminal"+i).innerHTML = "";
}
}
let src = path.join(themesDir, theme+".json" || settings.theme+".json");
// Always get fresh theme files
......@@ -348,6 +359,11 @@ window.themeChanger = (theme) => {
})
};
window.currentTerm = 0;
window.term[0].onprocesschange = p => {
document.getElementById("shell_tab0").innerText = "MAIN - "+p;
};
initMods();
window.fsDisp = new FilesystemDisplay({
parentId: "filesystem"
......@@ -383,6 +399,8 @@ window.focusShellTab = (number) => {
window.term[number].fit();
window.term[number].term.focus();
window.term[number].resendCWD();
window.fsDisp.followTab();
} else if (number > 0 && number <= 4 && window.term[number] !== null) {
window.term[number] = null;
......@@ -401,12 +419,17 @@ window.focusShellTab = (number) => {
});
window.term[number].onclose = e => {
delete window.term[number].onprocesschange;
document.getElementById("shell_tab"+number).innerText = "EMPTY";
document.getElementById("terminal"+number).innerHTML = "";
delete window.term[number];
window.focusShellTab(0);
};
window.term[number].onprocesschange = p => {
document.getElementById("shell_tab"+number).innerText = `#${number} - ${p}`;
};
document.getElementById("shell_tab"+number).innerText = "::"+port;
setTimeout(() => {
window.focusShellTab(number);
......
......@@ -55,20 +55,25 @@ class FilesystemDisplay {
<h2 id="fs_disp_error">CANNOT ACCESS CURRENT WORKING DIRECTORY</h2>`;
};
window.term[window.currentTerm].oncwdchange = (cwd) => {
if (cwd) {
if (this._fsWatcher) {
this._fsWatcher.close();
}
if (cwd.startsWith("FALLBACK |-- ")) {
this.readFS(cwd.slice(13));
this._noTracking = true;
} else {
this.readFS(cwd);
this.watchFS(cwd);
this.followTab = () => {
let num = window.currentTerm;
window.term[num].oncwdchange = (cwd) => {
if (cwd && window.currentTerm === num) {
if (this._fsWatcher) {
this._fsWatcher.close();
}
if (cwd.startsWith("FALLBACK |-- ")) {
this.readFS(cwd.slice(13));
this._noTracking = true;
} else {
this.readFS(cwd);
this.watchFS(cwd);
}
}
}
};
};
this.followTab();
this.watchFS = (dir) => {
if (this._fsWatcher) {
......
......@@ -85,6 +85,11 @@ class Terminal {
this.cwd = "FALLBACK |-- "+args[1];
this.oncwdchange(this.cwd);
break;
case "New process":
if (this.onprocesschange) {
this.onprocesschange(args[1]);
}
break;
default:
return;
}
......@@ -239,6 +244,7 @@ class Terminal {
});
};
this._nextTickUpdateTtyCWD = false;
this._nextTickUpdateProcess = false;
this._tick = setInterval(() => {
if (this._nextTickUpdateTtyCWD && this._disableCWDtracking === false) {
this._nextTickUpdateTtyCWD = false;
......@@ -258,6 +264,11 @@ class Terminal {
}
});
}
if (this.renderer && this._nextTickUpdateProcess) {
this.renderer.send("terminal_channel-"+this.port, "New process", this.tty._file);
this._nextTickUpdateProcess = false;
}
}, 1000);
this.tty = this.Pty.spawn(opts.shell || "bash", opts.params || [], {
......@@ -315,6 +326,7 @@ class Terminal {
});
this.tty.on("data", (data) => {
this._nextTickUpdateTtyCWD = true;
this._nextTickUpdateProcess = true;
try {
ws.send(data);
} catch (e) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册