diff --git a/lib/client/terminal.js b/lib/client/terminal.js index 00c437f9..64cf1dee 100644 --- a/lib/client/terminal.js +++ b/lib/client/terminal.js @@ -16,6 +16,11 @@ var CloudCmd, Util, DOM, CloudFunc, Terminal; Images = DOM.Images, Notify = DOM.Notify, + Size = { + cols: 0, + rows: 0 + }, + CHANNEL = CloudFunc.CHANNEL_TERMINAL, CHANNEL_RESIZE = CloudFunc.CHANNEL_TERMINAL_RESIZE, @@ -43,7 +48,11 @@ var CloudCmd, Util, DOM, CloudFunc, Terminal; CloudTerm.write = write; function show(callback) { - var socket = CloudCmd.Socket; + var options = { + onUpdate: onResize, + }, + + socket = CloudCmd.Socket; if (!Loading) { Images.showLoad({top:true}); @@ -91,13 +100,7 @@ var CloudCmd, Util, DOM, CloudFunc, Terminal; Terminal.brokenBold = true; Util.exec(callback); - }, { - onUpdate: function() { - var size = getSize(); - Term.resize(size.cols, size.rows); - Term.emit('resize', size); - } - }); + }, options); } } @@ -142,6 +145,18 @@ var CloudCmd, Util, DOM, CloudFunc, Terminal; return size; } + function onResize() { + var size = getSize(), + cols = size.cols, + rows = size.rows; + + if (Size.cols !== cols || Size.rows !== rows) { + Size = size; + + Term.resize(size.cols, size.rows); + Term.emit('resize', size); + } + } function load(pCallBack) { var dir = CloudCmd.LIBDIRCLIENT + 'terminal/',