diff --git a/src/_renderer.js b/src/_renderer.js index 3d7c681fdf69ec806220b398ffab4f513009d362..b7641144a0da7d1f1104381bf18c2623911ecac8 100644 --- a/src/_renderer.js +++ b/src/_renderer.js @@ -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); diff --git a/src/classes/filesystem.class.js b/src/classes/filesystem.class.js index 25446fd6430faed8f85656430efd5abfad5872b3..115cbd2f1b00a4e5e85c694b9a3fd4067d4627e4 100644 --- a/src/classes/filesystem.class.js +++ b/src/classes/filesystem.class.js @@ -55,20 +55,25 @@ class FilesystemDisplay {