diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/client/util/DocumentManager.ts | 15 | ||||
-rw-r--r-- | src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx | 2 |
2 files changed, 13 insertions, 4 deletions
diff --git a/src/client/util/DocumentManager.ts b/src/client/util/DocumentManager.ts index c048125c5..4e6968f08 100644 --- a/src/client/util/DocumentManager.ts +++ b/src/client/util/DocumentManager.ts @@ -11,6 +11,7 @@ import { LinkManager } from './LinkManager'; import { undoBatch, UndoManager } from './UndoManager'; import { Scripting } from './Scripting'; import { List } from '../../new_fields/List'; +import { SelectionManager } from './SelectionManager'; export class DocumentManager { @@ -132,7 +133,7 @@ export class DocumentManager { let doc = Doc.GetProto(docDelegate); const contextDoc = await Cast(doc.annotationOn, Doc); if (contextDoc) { - contextDoc.scrollY = NumCast(doc.y) - NumCast(contextDoc.height) / 2; + contextDoc.scrollY = NumCast(doc.y) - NumCast(contextDoc.height) / 2 * 72 / 96; } let docView: DocumentView | null; @@ -171,9 +172,17 @@ export class DocumentManager { } else { let contextView: DocumentView | null; Doc.BrushDoc(docDelegate); - if (!forceDockFunc && (contextView = DocumentManager.Instance.getDocumentView(contextDoc))) { + let contextViews = DocumentManager.Instance.getDocumentViews(contextDoc); + if (!forceDockFunc && contextViews.length) { + contextView = contextViews[0]; + SelectionManager.SelectDoc(contextView, false); // force unrendered annotations to be created contextDoc.panTransformType = "Ease"; - contextView.props.focus(docDelegate, willZoom); + setTimeout(() => { + SelectionManager.DeselectDoc(contextView!); + docView = DocumentManager.Instance.getDocumentView(docDelegate); + docView && contextView!.props.focus(contextView!.props.Document, willZoom); + docView && UndoManager.RunInBatch(() => docView!.props.focus(docView!.props.Document, willZoom), "focus"); + }, 0); } else { (dockFunc || CollectionDockingView.AddRightSplit)(contextDoc, undefined); setTimeout(() => { diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index 98730fe13..eb40e0bcb 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -403,7 +403,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { SelectionManager.DeselectAll(); if (this.props.Document.scrollHeight) { let annotOn = Cast(doc.annotationOn, Doc) as Doc; - let offset = annotOn && (NumCast(annotOn.height) / 2); + let offset = annotOn && (NumCast(annotOn.height) / 2 * 72 / 96); this.props.Document.scrollY = NumCast(doc.y) - offset; } else { const newPanX = NumCast(doc.x) + NumCast(doc.width) / 2; |