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