From 6906bf3e7d9fe7860e8abea57211b6090e9c91d1 Mon Sep 17 00:00:00 2001 From: paris Date: Thu, 18 Sep 2014 10:01:54 +0000 Subject: [PATCH] Implement detach function --- addons/attach/attach.js | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/addons/attach/attach.js b/addons/attach/attach.js index 390d0198..287a9705 100644 --- a/addons/attach/attach.js +++ b/addons/attach/attach.js @@ -25,18 +25,13 @@ bidirectional = (typeof bidirectional == 'undefined') ? true : bidirectional; this.socket = socket; - function _getMessage (ev) { + term._getMessage = function (ev) { term.write(ev.data); - } + }; - function _sendData (data) { + term._sendData = function (data) { socket.send(data); - } - - function _detach () { - term.off('data', _sendData); - socket.removeEventListener('message', _getMessage); - } + }; socket.addEventListener('message', _getMessage); @@ -44,7 +39,16 @@ this.on('data', _sendData); } - socket.addEventListener('close', _detach); - socket.addEventListener('error', _detach); + socket.addEventListener('close', term.detach.bind(term, socket)); + socket.addEventListener('error', term.detach.bind(term, socket)); + }; + + Xterm.prototype.detach = function (socket) { + var term = this; + + term.off('data', term._sendData); + socket.removeEventListener('message', term._getMessage); + + delete term.socket; }; }); \ No newline at end of file