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) {
|
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;
|
||||||
|
|
Ładowanie…
Reference in New Issue