about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2022-05-26 20:40:50 -0700
committerKartik K. Agaram <vc@akkartik.com>2022-05-26 20:40:50 -0700
commit0fab1b499df3eb887786526b4c38827c2027a1e8 (patch)
tree728a9e26b48910c66d9be7f170dff41ad5e78392
parentdd635546e3b43f7e50de88ccdc8464558f0a028a (diff)
downloadlines.love-0fab1b499df3eb887786526b4c38827c2027a1e8.tar.gz
paste in text with M-v
-rw-r--r--keychord.lua5
-rw-r--r--text.lua8
2 files changed, 13 insertions, 0 deletions
diff --git a/keychord.lua b/keychord.lua
index 12feef7..07e34cb 100644
--- a/keychord.lua
+++ b/keychord.lua
@@ -23,3 +23,8 @@ function App.combine_modifiers(key)
   result = result..key
   return result
 end
+
+function App.modifier_down()
+  local down = love.keyboard.isDown
+  return down('lctrl') or down('rctrl') or down('lalt') or down('ralt') or down('lgui') or down('rgui')
+end
diff --git a/text.lua b/text.lua
index 0668d17..ac8adbd 100644
--- a/text.lua
+++ b/text.lua
@@ -739,6 +739,8 @@ end
 
 function Text.textinput(t)
   if love.mouse.isDown('1') then return end
+  if App.modifier_down() then return end
+  local down = love.keyboard.isDown
   Text.insert_at_cursor(t)
 end
 
@@ -794,6 +796,12 @@ function Text.keychord_pressed(chord)
         break
       end
     end
+  -- paste
+  elseif chord == 'M-v' then
+    local s = love.system.getClipboardText()
+    for _,code in utf8.codes(s) do
+      Text.insert_at_cursor(utf8.char(code))
+    end
   elseif chord == 'home' then
     Cursor1.pos = 1
   elseif chord == 'end' then