From ab36224e033e1772c604cad2ab8c5f831f24357f Mon Sep 17 00:00:00 2001 From: Neil Date: Tue, 26 Nov 2019 09:09:26 +1100 Subject: Backport: Bug [#2140]. Fix where anchor and caret differ only in amount of virtual space so one was considered start and was moved for an insertion at that position. This could flip the order of the positions or change the length of the selection. Backport of changeset 7775:a9a0edc8f2f2. --- test/simpleTests.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'test/simpleTests.py') diff --git a/test/simpleTests.py b/test/simpleTests.py index f56066690..1ede72da3 100644 --- a/test/simpleTests.py +++ b/test/simpleTests.py @@ -1665,6 +1665,24 @@ class TestMultiSelection(unittest.TestCase): self.assertEquals(self.ed.Contents(), b'a1') self.assertEquals(self.textOfSelection(0), b'') + def testInsertThroughVirtualSpace(self): + self.ed.SetContents(b"a") + self.ed.SetSelection(1, 1) + self.ed.SetSelectionNAnchorVirtualSpace(0, 2) + self.ed.SetSelectionNCaretVirtualSpace(0, 3) + self.assertEquals(self.selectionRepresentation(0), "1+2v-1+3v") + self.assertEquals(self.textOfSelection(0), b'') + + # Append '1' past current virtual space + self.ed.SetTargetRange(1, 1) + self.ed.SetTargetStartVirtualSpace(4) + self.ed.SetTargetEndVirtualSpace(5) + self.ed.ReplaceTarget(1, b'1') + # Virtual space of selection all converted to real positions + self.assertEquals(self.selectionRepresentation(0), "3-4") + self.assertEquals(self.ed.Contents(), b'a 1') + self.assertEquals(self.textOfSelection(0), b' ') + class TestModalSelection(unittest.TestCase): -- cgit v1.2.3