diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/client/views/GlobalKeyHandler.ts | 4 | ||||
-rw-r--r-- | src/client/views/PreviewCursor.tsx | 11 |
2 files changed, 8 insertions, 7 deletions
diff --git a/src/client/views/GlobalKeyHandler.ts b/src/client/views/GlobalKeyHandler.ts index 1b16b15bb..b52a0063b 100644 --- a/src/client/views/GlobalKeyHandler.ts +++ b/src/client/views/GlobalKeyHandler.ts @@ -263,8 +263,8 @@ export default class KeyManager { case "c": if (SelectionManager.SelectedDocuments().length) { const bds = DocumentDecorations.Instance.Bounds; - const pt = [bds.x + (bds.r - bds.x) / 2, bds.y + (bds.b - bds.y) / 2]; - const text = `__DashDocId(${pt[0]},${pt[1]}):` + SelectionManager.SelectedDocuments().map(dv => dv.Document[Id]).join(":"); + 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); stopPropagation = false; preventDefault = false; diff --git a/src/client/views/PreviewCursor.tsx b/src/client/views/PreviewCursor.tsx index 2ddca369a..f7a7944c9 100644 --- a/src/client/views/PreviewCursor.tsx +++ b/src/client/views/PreviewCursor.tsx @@ -7,8 +7,8 @@ import { Docs } from '../documents/Documents'; import { Doc } from '../../new_fields/Doc'; import { Transform } from "../util/Transform"; import { DocServer } from '../DocServer'; -import { NumCast } from '../../new_fields/Types'; import { undoBatch } from '../util/UndoManager'; +import { NumCast } from '../../new_fields/Types'; @observer export class PreviewCursor extends React.Component<{}> { @@ -57,22 +57,23 @@ export class PreviewCursor extends React.Component<{}> { const strs = docids[0].split(","); const ptx = Number(strs[0].substring("__DashDocId(".length)); const pty = Number(strs[1].substring(0, strs[1].length - 1)); - const center = PreviewCursor._getTransform().transformPoint(ptx, pty); let count = 1; const list: Doc[] = []; docids.map((did, i) => i && DocServer.GetRefField(did).then(doc => { count++; if (doc instanceof Doc) { const alias = Doc.MakeClone(doc); - alias.x = newPoint[0] + NumCast(doc.x) - center[0]; - alias.y = newPoint[1] + NumCast(doc.y) - center[1]; + const deltaX = NumCast(doc.x) - ptx; + const deltaY = NumCast(doc.y) - pty; + alias.x = newPoint[0] + deltaX; + alias.y = newPoint[1] + deltaY; list.push(alias); } if (count === docids.length) { undoBatch(() => PreviewCursor._addDocument(list))(); } })); - + e.stopPropagation(); } else { // creates text document undoBatch(() => PreviewCursor._addLiveTextDoc(Docs.Create.TextDocument("", { |