fix terminal input getting stuck sometimes

pull/117/merge
nightwing 2015-07-08 10:45:31 +04:00
rodzic f531a9ce9b
commit 70a0c84f40
1 zmienionych plików z 10 dodań i 8 usunięć

Wyświetl plik

@ -651,23 +651,27 @@ define(function(require, exports, module) {
} }
function createTerminal(session, state) { function createTerminal(session, state) {
var queue = "";
var warned = false;
var timer = null;
function send(data) { function send(data) {
if (!(c9.status & c9.NETWORK)) if (!(c9.status & c9.NETWORK))
return warnConnection(); return warnConnection();
emit("input", { data: data, session: session }); emit("input", { data: data, session: session });
queue += data;
if (!queue) if (!timer) {
setTimeout(function() { timer = setTimeout(function() {
timer = null;
if (!session.connected) if (!session.connected)
return warnConnection(); return warnConnection();
// Send data to stdin of tmux process // Send data to stdin of tmux process
session.pty.write(queue); session.pty.write(queue);
queue = ""; queue = "";
}, 1); }, 1);
}
queue += data;
} }
function warnConnection() { function warnConnection() {
@ -685,8 +689,6 @@ define(function(require, exports, module) {
// Create the terminal renderer and monitor // Create the terminal renderer and monitor
var terminal = new Aceterm(0, 0, send); var terminal = new Aceterm(0, 0, send);
var queue = "";
var warned = false;
session.terminal = terminal; session.terminal = terminal;
session.monitor = terminal.monitor; session.monitor = terminal.monitor;