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.
ETM7ENJRMQ3PFPGIKTEDCOTFW7LBOLE2YGIJCWSZB67ENAZGEHZQC
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')