#14254: merge with 3.3.

This commit is contained in:
Roger Serwy 2013-04-03 00:43:31 -05:00
commit 1be94cea0f
2 changed files with 14 additions and 2 deletions

View file

@ -458,6 +458,7 @@ def restart_subprocess(self, with_cwd=False):
self.display_no_subprocess_error()
return None
self.transfer_path(with_cwd=with_cwd)
console.stop_readline()
# annotate restart in shell window and mark it
console.text.delete("iomark", "end-1c")
if was_executing:
@ -896,6 +897,7 @@ def get_standard_extension_names(self):
canceled = False
endoffile = False
closing = False
_stop_readline_flag = False
def set_warning_stream(self, stream):
global warning_stream
@ -971,8 +973,7 @@ def close(self):
parent=self.text)
if response is False:
return "cancel"
if self.reading:
self.top.quit()
self.stop_readline()
self.canceled = True
self.closing = True
# Wait for poll_subprocess() rescheduling to stop
@ -1030,6 +1031,12 @@ def begin(self):
tkinter._default_root = None # 03Jan04 KBK What's this?
return True
def stop_readline(self):
if not self.reading: # no nested mainloop to exit.
return
self._stop_readline_flag = True
self.top.quit()
def readline(self):
save = self.reading
try:
@ -1037,6 +1044,9 @@ def readline(self):
self.top.mainloop() # nested mainloop()
finally:
self.reading = save
if self._stop_readline_flag:
self._stop_readline_flag = False
return ""
line = self.text.get("iomark", "end-1c")
if len(line) == 0: # may be EOF if we quit our mainloop with Ctrl-C
line = "\n"