editor: Fix overwriting mode side effects
- insert_text normally shouldn't always overwrite when in overwriting mode.
This commit is contained in:
parent
dfe075b11c
commit
af621a6be0
2 changed files with 5 additions and 5 deletions
|
|
@ -339,10 +339,10 @@ class Editor:
|
|||
self.text_widget[start_y:end_y+1] = [new_line]
|
||||
self.cursor_x, self.cursor_y = start_x, start_y
|
||||
|
||||
def insert_text(self, text):
|
||||
def insert_text(self, text, is_overwriting=False):
|
||||
try:
|
||||
current_line = self.text_widget[self.cursor_y]
|
||||
replace_count = len(text) if self.is_overwriting else 0
|
||||
replace_count = len(text) if is_overwriting else 0
|
||||
self.text_widget[self.cursor_y] = (current_line[:self.cursor_x] + text
|
||||
+ current_line[self.cursor_x+replace_count:])
|
||||
except IndexError:
|
||||
|
|
@ -575,7 +575,7 @@ class Editor:
|
|||
except IndexError:
|
||||
self.ring_bell()
|
||||
elif term_code in self._PRINTABLE:
|
||||
self.insert_text(term_code)
|
||||
self.insert_text(term_code, is_overwriting=self.is_overwriting)
|
||||
else:
|
||||
self.insert_text(repr(term_code))
|
||||
self.previous_term_code = term_code
|
||||
|
|
|
|||
|
|
@ -83,11 +83,11 @@ class EditorTestCase(unittest.TestCase):
|
|||
# overwrite
|
||||
self.editor.toggle_overwrite()
|
||||
self.editor.cursor_left()
|
||||
self.editor.insert_text("d")
|
||||
self.editor.insert_text("d", is_overwriting=True)
|
||||
self._assert_editor("abd", (3, 0))
|
||||
self.editor.cursor_left()
|
||||
self.editor.cursor_left()
|
||||
self.editor.insert_text("ef")
|
||||
self.editor.insert_text("ef", is_overwriting=True)
|
||||
self._assert_editor("aef", (3, 0))
|
||||
|
||||
def test_enter(self):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue