From 7508a70ed5cb57beec1a69b996caf5375a446077 Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Mon, 20 Jun 2022 12:02:51 -0700 Subject: [PATCH] selection bugfix --- main.lua | 2 +- text_tests.lua | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/main.lua b/main.lua index 270e0b7..b1b0bd8 100644 --- a/main.lua +++ b/main.lua @@ -551,7 +551,7 @@ function App.keychord_pressed(chord) for _,line in ipairs(Lines) do line.y = nil end -- just in case we scroll Text.keychord_pressed(chord) end - if not App.shift_down() then + if not App.shift_down() and chord ~= 'C-c' then Selection1 = {} end end diff --git a/text_tests.lua b/text_tests.lua index 7c0ce7d..0fbe98c 100644 --- a/text_tests.lua +++ b/text_tests.lua @@ -243,6 +243,24 @@ function test_edit_deletes_selection() check_eq(Lines[1].data, 'xbc', 'F - test_edit_deletes_selection') end +function test_copy_does_not_reset_selection() + io.write('\ntest_copy_does_not_reset_selection') + -- display a line of text with a selection + App.screen.init{width=80, height=80} + Lines = load_array{'abc'} + Line_width = 75 + Cursor1 = {line=1, pos=1} + Selection1 = {line=1, pos=2} + Screen_top1 = {line=1, pos=1} + Screen_bottom1 = {} + App.draw() + -- copy selection + App.run_after_keychord('C-c') + check_eq(App.clipboard, 'a', 'F - test_copy_does_not_reset_selection/clipboard') + -- selection is reset since shift key is not pressed + check(Selection1.line, 'F - test_copy_does_not_reset_selection') +end + function test_edit_wrapping_text() io.write('\ntest_edit_wrapping_text') App.screen.init{width=50, height=60}