aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/GlobalKeyHandler.ts
diff options
context:
space:
mode:
authorusodhi <61431818+usodhi@users.noreply.github.com>2020-12-17 16:22:06 +0530
committerusodhi <61431818+usodhi@users.noreply.github.com>2020-12-17 16:22:06 +0530
commit48fd017c46b930ae94e341ae73bfc35006008b44 (patch)
tree488aae6f3864622548c01433867309cc0bd03a24 /src/client/views/GlobalKeyHandler.ts
parent563d86f03f63f60ec47aef23d2022c660ee18697 (diff)
parentf4f4cb6b3a639c3e1c0d291f1d290e80097cfa06 (diff)
merged
Diffstat (limited to 'src/client/views/GlobalKeyHandler.ts')
-rw-r--r--src/client/views/GlobalKeyHandler.ts57
1 files changed, 26 insertions, 31 deletions
diff --git a/src/client/views/GlobalKeyHandler.ts b/src/client/views/GlobalKeyHandler.ts
index 3f3d382e4..c38842c4f 100644
--- a/src/client/views/GlobalKeyHandler.ts
+++ b/src/client/views/GlobalKeyHandler.ts
@@ -22,11 +22,11 @@ import { DocumentDecorations } from "./DocumentDecorations";
import { InkStrokeProperties } from "./InkStrokeProperties";
import { MainView } from "./MainView";
import { DocumentLinksButton } from "./nodes/DocumentLinksButton";
-import { DocumentView } from "./nodes/DocumentView";
import { PDFMenu } from "./pdf/PDFMenu";
import { SnappingManager } from "../util/SnappingManager";
import { SearchBox } from "./search/SearchBox";
import { random } from "lodash";
+import { DocumentView } from "./nodes/DocumentView";
const modifiers = ["control", "meta", "shift", "alt"];
type KeyHandler = (keycode: string, e: KeyboardEvent) => KeyControlInfo | Promise<KeyControlInfo>;
@@ -86,12 +86,14 @@ export class KeyManager {
private unmodified = action((keyname: string, e: KeyboardEvent) => {
switch (keyname) {
+ case "a": SnappingManager.GetIsDragging() && (DragManager.CanEmbed = true);
+ break;
case "u":
if (document.activeElement?.tagName === "INPUT" || document.activeElement?.tagName === "TEXTAREA") {
return { stopPropagation: false, preventDefault: false };
}
- const ungroupings = SelectionManager.SelectedDocuments().slice();
+ const ungroupings = SelectionManager.Views().slice();
UndoManager.RunInBatch(() => ungroupings.map(dv => dv.layoutDoc.group = undefined), "ungroup");
SelectionManager.DeselectAll();
break;
@@ -100,7 +102,7 @@ export class KeyManager {
return { stopPropagation: false, preventDefault: false };
}
- const groupings = SelectionManager.SelectedDocuments().slice();
+ const groupings = SelectionManager.Views().slice();
const randomGroup = random(0, 1000);
UndoManager.RunInBatch(() => groupings.map(dv => dv.layoutDoc.group = randomGroup), "group");
SelectionManager.DeselectAll();
@@ -137,14 +139,14 @@ export class KeyManager {
return { stopPropagation: false, preventDefault: false };
}
- const selected = SelectionManager.SelectedDocuments().slice();
+ const selected = SelectionManager.Views().slice();
UndoManager.RunInBatch(() => selected.map(dv => !dv.props.Document._stayInCollection && dv.props.removeDocument?.(dv.props.Document)), "delete");
SelectionManager.DeselectAll();
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;
+ case "arrowleft": UndoManager.RunInBatch(() => SelectionManager.Views().map(dv => dv.props.CollectionFreeFormDocumentView?.().nudge(-1, 0)), "nudge left"); break;
+ case "arrowright": UndoManager.RunInBatch(() => SelectionManager.Views().map(dv => dv.props.CollectionFreeFormDocumentView?.().nudge?.(1, 0)), "nudge right"); break;
+ case "arrowup": UndoManager.RunInBatch(() => SelectionManager.Views().map(dv => dv.props.CollectionFreeFormDocumentView?.().nudge?.(0, -1)), "nudge up"); break;
+ case "arrowdown": UndoManager.RunInBatch(() => SelectionManager.Views().map(dv => dv.props.CollectionFreeFormDocumentView?.().nudge?.(0, 1)), "nudge down"); break;
}
return {
@@ -158,10 +160,10 @@ export class KeyManager {
const preventDefault = false;
switch (keyname) {
- 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;
+ case "arrowleft": UndoManager.RunInBatch(() => SelectionManager.Views().map(dv => dv.props.CollectionFreeFormDocumentView?.().nudge?.(-10, 0)), "nudge left"); break;
+ case "arrowright": UndoManager.RunInBatch(() => SelectionManager.Views().map(dv => dv.props.CollectionFreeFormDocumentView?.().nudge?.(10, 0)), "nudge right"); break;
+ case "arrowup": UndoManager.RunInBatch(() => SelectionManager.Views().map(dv => dv.props.CollectionFreeFormDocumentView?.().nudge?.(0, -10)), "nudge up"); break;
+ case "arrowdown": UndoManager.RunInBatch(() => SelectionManager.Views().map(dv => dv.props.CollectionFreeFormDocumentView?.().nudge?.(0, 10)), "nudge down"); break;
}
return {
@@ -175,17 +177,10 @@ export class KeyManager {
const preventDefault = true;
switch (keyname) {
+ case "ƒ":
case "f":
- const dv = SelectionManager.SelectedDocuments()?.[0];
- if (dv) {
- const ex = dv.props.ScreenToLocalTransform().inverse().transformPoint(0, 0)[0];
- const ey = dv.props.ScreenToLocalTransform().inverse().transformPoint(0, 0)[1];
- DocumentView.FloatDoc(dv, ex, ey);
- }
- // case "n":
- // let toggle = MainView.Instance.addMenuToggle.current!;
- // toggle.checked = !toggle.checked;
- // break;
+ const dv = SelectionManager.Views()?.[0];
+ UndoManager.RunInBatch(() => dv.props.CollectionFreeFormDocumentView?.().float(), "float");
}
return {
@@ -224,7 +219,7 @@ export class KeyManager {
SearchBox.Instance.enter(undefined);
break;
case "o":
- const target = SelectionManager.SelectedDocuments()[0];
+ const target = SelectionManager.Views()[0];
target && CollectionDockingView.OpenFullScreen(target.props.Document);
break;
case "r":
@@ -251,11 +246,11 @@ export class KeyManager {
preventDefault = false;
break;
case "x":
- if (SelectionManager.SelectedDocuments().length) {
+ if (SelectionManager.Views().length) {
const bds = DocumentDecorations.Instance.Bounds;
- const pt = SelectionManager.SelectedDocuments()[0].props.ScreenToLocalTransform().transformPoint(bds.x + (bds.r - bds.x) / 2, bds.y + (bds.b - bds.y) / 2);
- const text = `__DashDocId(${pt?.[0] || 0},${pt?.[1] || 0}):` + SelectionManager.SelectedDocuments().map(dv => dv.Document[Id]).join(":");
- SelectionManager.SelectedDocuments().length && navigator.clipboard.writeText(text);
+ const pt = SelectionManager.Views()[0].props.ScreenToLocalTransform().transformPoint(bds.x + (bds.r - bds.x) / 2, bds.y + (bds.b - bds.y) / 2);
+ const text = `__DashDocId(${pt?.[0] || 0},${pt?.[1] || 0}):` + SelectionManager.Views().map(dv => dv.Document[Id]).join(":");
+ SelectionManager.Views().length && navigator.clipboard.writeText(text);
DocumentDecorations.Instance.onCloseClick(undefined);
stopPropagation = false;
preventDefault = false;
@@ -264,9 +259,9 @@ export class KeyManager {
case "c":
if (!PDFMenu.Instance.Active && DocumentDecorations.Instance.Bounds.r - DocumentDecorations.Instance.Bounds.x > 2) {
const bds = DocumentDecorations.Instance.Bounds;
- const pt = SelectionManager.SelectedDocuments()[0].props.ScreenToLocalTransform().transformPoint(bds.x + (bds.r - bds.x) / 2, bds.y + (bds.b - bds.y) / 2);
- const text = `__DashCloneId(${pt?.[0] || 0},${pt?.[1] || 0}):` + SelectionManager.SelectedDocuments().map(dv => dv.Document[Id]).join(":");
- SelectionManager.SelectedDocuments().length && navigator.clipboard.writeText(text);
+ const pt = SelectionManager.Views()[0].props.ScreenToLocalTransform().transformPoint(bds.x + (bds.r - bds.x) / 2, bds.y + (bds.b - bds.y) / 2);
+ const text = `__DashCloneId(${pt?.[0] || 0},${pt?.[1] || 0}):` + SelectionManager.Views().map(dv => dv.Document[Id]).join(":");
+ SelectionManager.Views().length && navigator.clipboard.writeText(text);
stopPropagation = false;
}
preventDefault = false;
@@ -283,7 +278,7 @@ export class KeyManager {
const plain = e.clipboardData?.getData("text/plain");
const clone = plain?.startsWith("__DashCloneId(");
if (plain && (plain.startsWith("__DashDocId(") || clone)) {
- const first = SelectionManager.SelectedDocuments().length ? SelectionManager.SelectedDocuments()[0] : undefined;
+ const first = SelectionManager.Views().length ? SelectionManager.Views()[0] : undefined;
if (first?.props.Document.type === DocumentType.COL) {
const docids = plain.split(":");
let count = 1;