kopia lustrzana https://github.com/c9/core
fix terminal input getting stuck sometimes
rodzic
f531a9ce9b
commit
70a0c84f40
|
@ -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;
|
||||
|
|
Ładowanie…
Reference in New Issue