Skip to content
Browse files

Fixed a bug (that I created earlier today when I was cleaning up the …

…code, sigh) where terminals weren't auto-closing themselves when the underlying process ended.
  • Loading branch information...
1 parent 04f2eab commit 45e9c878eda9c48dd36134f519b0b8e28fcd8aa8 @liftoff committed Oct 12, 2011
Showing with 51 additions and 1 deletion.
  1. +46 −1 LICENSE.txt
  2. +4 −0 gateone/gateone.py
  3. +1 −0 gateone/static/gateone.js
View
47 LICENSE.txt
@@ -15,4 +15,49 @@ obtained by visiting:
http://www.gnu.org/licenses/agpl.html
If the terms of the AGPLv3 license do not suit your needs, a proprietary
-license may be purchased from Liftoff Software: http://liftoffsoftware.com/
+license may be purchased from Liftoff Software: http://liftoffsoftware.com/
+
+Included 3rd party items and their licenses
+-------------------------------------------
+
+Specific files
+^^^^^^^^^^^^^^
+static/bell.ogg - Taken from KDE's default sound theme (KDE-Sys-App-Message.ogg)
+ which is licensed under the GPLv2:
+
+ http://www.gnu.org/licenses/gpl-2.0.html
+
+static/favicon.ico - A miniaturized version of KDE's Oxygen icon for the Konsole
+ program. The Oxygen icon library is released under the
+ Creative Commons ShareAlike 3.0 license:
+
+ http://creativecommons.org/licenses/by-sa/3.0/
+
+ (Therefore favicon.ico is also licensed as such)
+
+SVG Icons (inline in gateone.js) were taken from GoSquared which released them
+under the, "free for you to use as you wish" license =). See:
+
+ http://www.gosquared.com/liquidicity/archives/122
+
+Portional items
+^^^^^^^^^^^^^^^
+Portions of Gate One's JavaScript contain code taken from the excellent MochiKit
+library which is licensed under the MIT license:
+
+ http://www.opensource.org/licenses/mit-license.php
+
+The portions of code taken from MochiKit are explicitly indicated in gateone.js.
+
+
+NOTICE OF GOOD FAITH ATTRIBUTION
+--------------------------------
+If we failed to attribute or state the license of something included with Gate
+One please let us know so it can be corrected.
+
+
+It takes a village
+------------------
+Seriously, thanks to everyone who's ever contributed code, tutorials, or just
+straight-up knowledge and wisdom to the Internet. Gate One wouldn't have
+happend if it weren't for the contributions of the many that came before.
View
4 gateone/gateone.py
@@ -578,6 +578,10 @@ def new_terminal(self, settings):
mode_handler = partial(self.mode_handler, term)
SESSIONS[self.session][term][ # 9 is CALLBACK_MODE
'multiplex'].term.callbacks[9] = mode_handler
+ else:
+ # Tell the client this terminal is no more
+ message = {'term_ended': term}
+ self.write_message(json_encode(message))
self.refresh_screen(term) # Send a fresh screen to the client
# NOTE: refresh_screen will also take care of cleaning things up if
# SESSIONS[self.session][term]['multiplex'].alive is False
View
1 gateone/static/gateone.js
@@ -2266,6 +2266,7 @@ GateOne.Base.update(GateOne.Terminal, {
// Register our actions
go.Net.addAction('terminals', go.Terminal.reattachTerminalsAction);
go.Net.addAction('termupdate', go.Terminal.updateTerminalAction);
+ go.Net.addAction('term_ended', go.Terminal.closeTerminal);
go.Net.addAction('term_exists', go.Terminal.reconnectTerminalAction);
go.Net.addAction('set_mode', go.Terminal.setModeAction); // For things like application cursor keys
go.Net.addAction('metadata', go.Terminal.storeMetadata);

0 comments on commit 45e9c87

Please sign in to comment.
Something went wrong with that request. Please try again.