diff --git a/src/renderer/handlers/selection.js b/src/renderer/handlers/selection.js index 7ccd8a4..3e2f8a9 100644 --- a/src/renderer/handlers/selection.js +++ b/src/renderer/handlers/selection.js @@ -88,7 +88,8 @@ function _onStart(e) { height: '0px', }); - if (!e.shiftKey) { + const preserve = e.shiftKey || e.ctrlKey || e.metaKey; + if (!preserve) { _state.selectedIdxs.clear(); lastSelectedIdx = null; _cb.refreshCardSelection(); @@ -113,9 +114,10 @@ function _onMove(e) { const r = card.getBoundingClientRect(); const overlaps = !(r.right < sel.left || r.left > sel.right || r.bottom < sel.top || r.top > sel.bottom); + const preserve = e.shiftKey || e.ctrlKey || e.metaKey; if (overlaps) { _state.selectedIdxs.add(i); - } else if (!e.shiftKey) { + } else if (!preserve) { _state.selectedIdxs.delete(i); } });