diff options
Diffstat (limited to 'src/client/views/GlobalKeyHandler.ts')
| -rw-r--r-- | src/client/views/GlobalKeyHandler.ts | 35 | 
1 files changed, 27 insertions, 8 deletions
| diff --git a/src/client/views/GlobalKeyHandler.ts b/src/client/views/GlobalKeyHandler.ts index 52801b570..d01f3f1e5 100644 --- a/src/client/views/GlobalKeyHandler.ts +++ b/src/client/views/GlobalKeyHandler.ts @@ -8,7 +8,7 @@ import { Doc } from "../../new_fields/Doc";  import { DictationManager } from "../util/DictationManager";  import SharingManager from "../util/SharingManager";  import { CurrentUserUtils } from "../../server/authentication/models/current_user_utils"; -import { Cast, PromiseValue } from "../../new_fields/Types"; +import { Cast, PromiseValue, NumCast } from "../../new_fields/Types";  import { ScriptField } from "../../new_fields/ScriptField";  import { InkingControl } from "./InkingControl";  import { InkTool } from "../../new_fields/InkField"; @@ -89,13 +89,20 @@ export default class KeyManager {                          return { stopPropagation: false, preventDefault: false };                      }                  } -                UndoManager.RunInBatch(() => { -                    SelectionManager.SelectedDocuments().map(docView => { -                        const doc = docView.props.Document; -                        const remove = docView.props.removeDocument; -                        remove && remove(doc); -                    }); -                }, "delete"); +                UndoManager.RunInBatch(() => +                    SelectionManager.SelectedDocuments().map(dv => dv.props.removeDocument?.(dv.props.Document)), "delete"); +                break; +            case "arrowleft": +                UndoManager.RunInBatch(() => SelectionManager.SelectedDocuments().map(dv => dv.props.nudge?.(-1, 0)), "nudge left"); +                break; +            case "arrowright": +                UndoManager.RunInBatch(() => SelectionManager.SelectedDocuments().map(dv => dv.props.nudge?.(1, 0)), "nudge right"); +                break; +            case "arrowup": +                UndoManager.RunInBatch(() => SelectionManager.SelectedDocuments().map(dv => dv.props.nudge?.(0, -1)), "nudge up"); +                break; +            case "arrowdown": +                UndoManager.RunInBatch(() => SelectionManager.SelectedDocuments().map(dv => dv.props.nudge?.(0, 1)), "nudge down");                  break;          } @@ -114,6 +121,18 @@ export default class KeyManager {              //     DictationManager.Controls.listen({ useOverlay: true, tryExecute: true });              //     stopPropagation = true;              //     preventDefault = true; +            case "arrowleft": +                UndoManager.RunInBatch(() => SelectionManager.SelectedDocuments().map(dv => dv.props.nudge?.(-10, 0)), "nudge left"); +                break; +            case "arrowright": +                UndoManager.RunInBatch(() => SelectionManager.SelectedDocuments().map(dv => dv.props.nudge?.(10, 0)), "nudge right"); +                break; +            case "arrowup": +                UndoManager.RunInBatch(() => SelectionManager.SelectedDocuments().map(dv => dv.props.nudge?.(0, -10)), "nudge up"); +                break; +            case "arrowdown": +                UndoManager.RunInBatch(() => SelectionManager.SelectedDocuments().map(dv => dv.props.nudge?.(0, 10)), "nudge down"); +                break;          }          return { | 
