M EditorWindow.py
M PyShell.py Idlefork SF Bug 440383 - IDLE goes into beep loop Fix loop in EditorWindow.newline_and_indent_event() and in addition fix submission of >>> prompt to PyParse.Parser Eliminate extra attribute EditorWindow.auto_indent
This commit is contained in:
parent
8e5b53b3d9
commit
822a77fcc7
|
@ -1085,8 +1085,6 @@ class EditorWindow:
|
|||
text.see("insert")
|
||||
text.undo_block_stop()
|
||||
|
||||
auto_indent = newline_and_indent_event
|
||||
|
||||
# Our editwin provides a is_char_in_string function that works
|
||||
# with a Tk text index, but PyParse only knows about offsets into
|
||||
# a string. This builds a function for PyParse that accepts an
|
||||
|
|
|
@ -886,7 +886,7 @@ class PyShell(OutputWindow):
|
|||
self.text.insert("insert", "\n")
|
||||
self.text.see("insert")
|
||||
else:
|
||||
self.auto_indent(event)
|
||||
self.newline_and_indent_event(event)
|
||||
return "break"
|
||||
|
||||
def enter_callback(self, event):
|
||||
|
@ -918,6 +918,11 @@ class PyShell(OutputWindow):
|
|||
# No stdin mark -- just get the current line
|
||||
self.recall(self.text.get("insert linestart", "insert lineend"))
|
||||
return "break"
|
||||
# If we're between the beginning of the line and the iomark, i.e.
|
||||
# in the prompt area, complain.
|
||||
if self.text.compare("insert", "<", "iomark"):
|
||||
self.text.bell()
|
||||
return "break"
|
||||
# If we're in the current input and there's only whitespace
|
||||
# beyond the cursor, erase that whitespace first
|
||||
s = self.text.get("insert", "end-1c")
|
||||
|
@ -926,7 +931,7 @@ class PyShell(OutputWindow):
|
|||
# If we're in the current input before its last line,
|
||||
# insert a newline right at the insert point
|
||||
if self.text.compare("insert", "<", "end-1c linestart"):
|
||||
self.auto_indent(event)
|
||||
self.newline_and_indent_event(event)
|
||||
return "break"
|
||||
# We're in the last line; append a newline and submit it
|
||||
self.text.mark_set("insert", "end-1c")
|
||||
|
@ -934,7 +939,7 @@ class PyShell(OutputWindow):
|
|||
self.text.insert("insert", "\n")
|
||||
self.text.see("insert")
|
||||
else:
|
||||
self.auto_indent(event)
|
||||
self.newline_and_indent_event(event)
|
||||
self.text.tag_add("stdin", "iomark", "end-1c")
|
||||
self.text.update_idletasks()
|
||||
if self.reading:
|
||||
|
|
Loading…
Reference in New Issue