about summary refs log tree commit diff stats
path: root/keychord.lua
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2022-05-29 16:13:24 -0700
committerKartik K. Agaram <vc@akkartik.com>2022-05-29 16:13:24 -0700
commitd441f8a760635b9352fa1682143470162009813d (patch)
treeb2a2a1bfbc4c6f46bdf60ba6434918e54b6c6d90 /keychord.lua
parent6aeb89386cfe050d3c5afad886f711d48cc2d518 (diff)
downloadlines.love-d441f8a760635b9352fa1682143470162009813d.tar.gz
some helpers
I spent some time trying to reduce the duplication between identical
operations with and without the shift key pressed. However it makes
things harder to understand. If you try to process selection in
App.keychord_pressed in main.lua, you have to sometimes process the
selection before (e.g. including the state of the cursor _before_ an
arrow key takes effect), and sometimes after (e.g. copying the selection
before resetting it, even though it doesn't include a shift key)

Let's just leave things as they are.
Diffstat (limited to 'keychord.lua')
-rw-r--r--keychord.lua16
1 files changed, 16 insertions, 0 deletions
diff --git a/keychord.lua b/keychord.lua
index 3ab0635..0ec4143 100644
--- a/keychord.lua
+++ b/keychord.lua
@@ -33,6 +33,22 @@ function App.modifier_down()
   return array.any(Modifiers, love.keyboard.isDown)
 end
 
+function App.ctrl_down()
+  return love.keyboard.isDown('lctrl') or love.keyboard.isDown('rctrl')
+end
+
+function App.alt_down()
+  return love.keyboard.isDown('lalt') or love.keyboard.isDown('ralt')
+end
+
+function App.shift_down()
+  return love.keyboard.isDown('lshift') or love.keyboard.isDown('rshift')
+end
+
+function App.gui_down()
+  return love.keyboard.isDown('lgui') or love.keyboard.isDown('rgui')
+end
+
 array = {}
 
 function array.find(arr, elem)