diff options
author | Guido van Rossum <guido@python.org> | 1999-06-25 16:09:27 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1999-06-25 16:09:27 (GMT) |
commit | fed9b914b5469ba36c30c0e6ab9cde441c2431a9 (patch) | |
tree | cbb57381caad9de90116597003e304816151d772 /Tools/idle | |
parent | 205afb487a4ed9a70b0360da47402d2409aa9ed1 (diff) | |
download | cpython-fed9b914b5469ba36c30c0e6ab9cde441c2431a9.zip cpython-fed9b914b5469ba36c30c0e6ab9cde441c2431a9.tar.gz cpython-fed9b914b5469ba36c30c0e6ab9cde441c2431a9.tar.bz2 |
Extend _close() to break cycles.
Break some other cycles too (and destroy the root when done).
Diffstat (limited to 'Tools/idle')
-rw-r--r-- | Tools/idle/PyShell.py | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/Tools/idle/PyShell.py b/Tools/idle/PyShell.py index a618ad1..90f9b2c 100644 --- a/Tools/idle/PyShell.py +++ b/Tools/idle/PyShell.py @@ -363,12 +363,13 @@ class PyShell(OutputWindow): # Helper for ModifiedInterpreter self.resetoutput() self.executing = 1 - self._cancel_check = self.cancel_check + ##self._cancel_check = self.cancel_check ##sys.settrace(self._cancel_check) def endexecuting(self): # Helper for ModifiedInterpreter - sys.settrace(None) + ##sys.settrace(None) + ##self._cancel_check = None self.executing = 0 self.canceled = 0 @@ -386,17 +387,20 @@ class PyShell(OutputWindow): if self.reading: self.top.quit() return "cancel" - reply = PyShellEditorWindow.close(self) - if reply != "cancel": - self.flist.pyshell = None - # Restore std streams - sys.stdout = self.save_stdout - sys.stderr = self.save_stderr - sys.stdin = self.save_stdin - # Break cycles - self.interp = None - self.console = None - return reply + return PyShellEditorWindow.close(self) + + def _close(self): + # Restore std streams + sys.stdout = self.save_stdout + sys.stderr = self.save_stderr + sys.stdin = self.save_stdin + # Break cycles + self.interp = None + self.console = None + self.auto = None + self.flist.pyshell = None + self.history = None + OutputWindow._close(self) # Really EditorWindow._close def ispythonsource(self, filename): # Override this so EditorWindow never removes the colorizer @@ -731,6 +735,7 @@ def main(): shell.begin() root.mainloop() + root.destroy() if __name__ == "__main__": |