From dfc57bd8848d4a20d572b6d38d0c2730b2c5e80a Mon Sep 17 00:00:00 2001 From: Adam Harrison Date: Thu, 10 Jun 2021 12:32:33 -0400 Subject: [PATCH] Used routine to add cursors in order correctly. --- data/core/commands/doc.lua | 4 +--- data/core/doc/init.lua | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/data/core/commands/doc.lua b/data/core/commands/doc.lua index b4036e69..b67a1e7a 100644 --- a/data/core/commands/doc.lua +++ b/data/core/commands/doc.lua @@ -80,9 +80,7 @@ local function split_cursor(direction) table.insert(new_cursors, { line1 + direction, col1 }) end end - for i,v in ipairs(new_cursors) do - doc():set_selections(#doc().selections/4 + 1, v[1], v[2]) - end + for i,v in ipairs(new_cursors) do doc():add_selection(v[1], v[2]) end end local commands = { diff --git a/data/core/doc/init.lua b/data/core/doc/init.lua index f44b0ebf..4091482a 100644 --- a/data/core/doc/init.lua +++ b/data/core/doc/init.lua @@ -143,7 +143,7 @@ function Doc:set_selections(idx, line1, col1, line2, col2, swap, rm) end function Doc:add_selection(line1, col1, line2, col2, swap) - local l1, c1 = sort_positions(line1, col1, line2, col2) + local l1, c1 = sort_positions(line1, col1, line2 or line1, col2 or col1) local target = #self.selections / 4 + 1 for idx, tl1, tc1 in self:get_selections(true) do if l1 < tl1 or l1 == tl1 and c1 < tc1 then