Skip to content
This repository has been archived by the owner on Oct 22, 2021. It is now read-only.

Commit

Permalink
🐛 Fix fsDisp not following tabs & tab titles
Browse files Browse the repository at this point in the history
  • Loading branch information
GitSquared committed Nov 25, 2018
1 parent bc66a57 commit d723b5f
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 12 deletions.
23 changes: 23 additions & 0 deletions src/_renderer.js
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand All @@ -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
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -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;

Expand All @@ -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);
Expand Down
29 changes: 17 additions & 12 deletions src/classes/filesystem.class.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
12 changes: 12 additions & 0 deletions src/classes/terminal.class.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down Expand Up @@ -239,6 +244,7 @@ class Terminal {
});
};
this._nextTickUpdateTtyCWD = false;
this._nextTickUpdateProcess = false;
this._tick = setInterval(() => {
if (this._nextTickUpdateTtyCWD && this._disableCWDtracking === false) {
this._nextTickUpdateTtyCWD = false;
Expand All @@ -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 || [], {
Expand Down Expand Up @@ -315,6 +326,7 @@ class Terminal {
});
this.tty.on("data", (data) => {
this._nextTickUpdateTtyCWD = true;
this._nextTickUpdateProcess = true;
try {
ws.send(data);
} catch (e) {
Expand Down

0 comments on commit d723b5f

Please sign in to comment.