diff options
author | Kurt B. Kaiser <kbk@shore.net> | 2004-12-23 04:32:25 (GMT) |
---|---|---|
committer | Kurt B. Kaiser <kbk@shore.net> | 2004-12-23 04:32:25 (GMT) |
commit | 8e1ba59add1cc87b7b0a10ba1c568653b5aa2076 (patch) | |
tree | 4f2c735e60dc6650b181f127f24b91bd8a6cd145 /Lib | |
parent | 2793e18b1b78daaaaab95b1ea7a299e64f92c46a (diff) | |
download | cpython-8e1ba59add1cc87b7b0a10ba1c568653b5aa2076.zip cpython-8e1ba59add1cc87b7b0a10ba1c568653b5aa2076.tar.gz cpython-8e1ba59add1cc87b7b0a10ba1c568653b5aa2076.tar.bz2 |
The GUI was hanging if the shell window was closed while a raw_input()
was pending. Restored the quit() of the readline() mainloop().
http://mail.python.org/pipermail/idle-dev/2004-December/002307.html
M NEWS.txt
M PyShell.py
M idlever.py
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/idlelib/NEWS.txt | 9 | ||||
-rw-r--r-- | Lib/idlelib/PyShell.py | 18 | ||||
-rw-r--r-- | Lib/idlelib/idlever.py | 2 |
3 files changed, 22 insertions, 7 deletions
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt index 6337e7c..86a6040 100644 --- a/Lib/idlelib/NEWS.txt +++ b/Lib/idlelib/NEWS.txt @@ -1,3 +1,12 @@ +What's New in IDLE 1.1.1? +======================= + +*Release date: XX-DEC-2004* + +- The GUI was hanging if the shell window was closed while a raw_input() + was pending. Restored the quit() of the readline() mainloop(). + http://mail.python.org/pipermail/idle-dev/2004-December/002307.html + What's New in IDLE 1.1? ======================= diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py index 887d638..387b537 100644 --- a/Lib/idlelib/PyShell.py +++ b/Lib/idlelib/PyShell.py @@ -910,6 +910,9 @@ class PyShell(OutputWindow): parent=self.text) if response == False: return "cancel" + if self.reading: + self.top.quit() + self.canceled = True self.closing = True # Wait for poll_subprocess() rescheduling to stop self.text.after(2 * self.pollinterval, self.close2) @@ -974,10 +977,12 @@ class PyShell(OutputWindow): save = self.reading try: self.reading = 1 - self.top.mainloop() + self.top.mainloop() # nested mainloop() finally: self.reading = save line = self.text.get("iomark", "end-1c") + if len(line) == 0: # may be EOF if we quit our mainloop with Ctrl-C + line = "\n" if isinstance(line, unicode): import IOBinding try: @@ -987,10 +992,11 @@ class PyShell(OutputWindow): self.resetoutput() if self.canceled: self.canceled = 0 - raise KeyboardInterrupt + if not use_subprocess: + raise KeyboardInterrupt if self.endoffile: self.endoffile = 0 - return "" + line = "" return line def isatty(self): @@ -1009,13 +1015,13 @@ class PyShell(OutputWindow): return "break" self.endoffile = 0 self.canceled = 1 - if self.reading: - self.top.quit() - elif (self.executing and self.interp.rpcclt): + if (self.executing and self.interp.rpcclt): if self.interp.getdebugger(): self.interp.restart_subprocess() else: self.interp.interrupt_subprocess() + if self.reading: + self.top.quit() # exit the nested mainloop() in readline() return "break" def eof_callback(self, event): diff --git a/Lib/idlelib/idlever.py b/Lib/idlelib/idlever.py index aba89af..46b58aa 100644 --- a/Lib/idlelib/idlever.py +++ b/Lib/idlelib/idlever.py @@ -1 +1 @@ -IDLE_VERSION = "1.1" +IDLE_VERSION = "1.1.1" |