Skip to content

Commit d65641f

Browse files
author
Jonathan Plasse
committed
Handle selection starting on a separator
1 parent 6763718 commit d65641f

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/textual/widgets/_masked_input.py

+6-3
Original file line numberDiff line numberDiff line change
@@ -628,22 +628,25 @@ def replace(self, text: str, start: int, end: int):
628628
"""
629629

630630
self.cursor_position = start
631+
# Handle case where cursor start on a separator
632+
self._template.move_cursor(1)
633+
self._template.move_cursor(-1)
634+
if self.cursor_position < start:
635+
self._template.move_cursor(1)
636+
631637
for char in text:
632638
if self.cursor_position >= end:
633639
return
634640
new_value_cursor_position = self._template.insert_text_at_cursor(char)
635641
if new_value_cursor_position is None:
636642
self.restricted()
637643
return
638-
639644
self.value, self.cursor_position = new_value_cursor_position
640645

641646
last_cursor_position = self.cursor_position
642-
643647
while self.cursor_position < end:
644648
self._template.delete_at_position()
645649
self._template.move_cursor(1)
646-
647650
self.cursor_position = last_cursor_position
648651

649652
def clear(self) -> None:

0 commit comments

Comments
 (0)