aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx96
-rw-r--r--src/client/views/nodes/DocumentLinksButton.tsx6
-rw-r--r--src/client/views/nodes/formattedText/FormattedTextBox.tsx2
3 files changed, 57 insertions, 47 deletions
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index a3d3a210d..ffa4be4b9 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -1174,47 +1174,55 @@ export class CollectionFreeFormView extends CollectionSubView<PanZoomDocument, P
@action
handleDragging = (e: Event, de: DragEvent) => {
- const nw = NumCast(this.Document._nativeWidth, this.props.NativeWidth());
- const nh = NumCast(this.Document._nativeHeight, this.props.NativeHeight());
- const hscale = nh ? this.props.PanelHeight() / nh : 1;
- const wscale = nw ? this.props.PanelWidth() / nw : 1;
+ const top = this.panX();
+ const left = this.panY();
+
+ const size = this.getTransform().transformDirection(this.props.PanelWidth(), this.props.PanelHeight());
+
+ const scale = this.getLocalTransform().inverse().Scale;
if (this._marqueeRef) {
+
if (this._marqueeRef.current) {
+ // console.log("top: " + this._marqueeRef.current.clientTop);
// console.log("left: " + this._marqueeRef.current.clientLeft);
// console.log("width: " + this._marqueeRef.current.clientWidth);
- // console.log("client x: " + de.clientX);
-
- // console.log("top: " + this._marqueeRef.current.clientTop);
// console.log("height: " + this._marqueeRef.current.clientHeight);
- // console.log("client y: " + de.clientY);
+
+ console.log("width: " + this._marqueeRef.current.getBoundingClientRect().width);
+ console.log("height: " + this._marqueeRef.current.getBoundingClientRect().width);
+ console.log("x: " + this._marqueeRef.current.getBoundingClientRect().x);
+ console.log("y: " + this._marqueeRef.current.getBoundingClientRect().y);
+
+ // console.log("mouse x: " + de.screenX);
+ // console.log("mouse y: " + de.screenY);
if (this._marqueeRef.current.clientWidth > 0) {
if (de.clientX - 315 - this._marqueeRef.current.clientLeft < 25) {
console.log("PAN left ");
- if (this.canPanX) {
- this.Document._panX = de.clientX - 20 - this._marqueeRef.current.clientLeft;
- setTimeout(action(() => {
- this.canPanX = true;
- this.panX();
- }), 2500);
- this.canPanX = false;
- }
+
+ // if (this.canPanX) {
+ // this.Document._panX = left - 5;
+ // setTimeout(action(() => {
+ // this.canPanX = true;
+ // this.panX();
+ // }), 250);
+ // this.canPanX = false;
+ // }
} else if (de.clientX - 315 - this._marqueeRef.current.clientLeft -
this._marqueeRef.current.clientWidth < 25) {
console.log("PAN right ");
- if (this.canPanX) {
- this.Document._panX = de.clientX - 315 - this._marqueeRef.current.clientLeft -
- this._marqueeRef.current.clientWidth;
-
- setTimeout(action(() => {
- this.panX();
- this.canPanX = true;
- }), 2500);
- this.canPanX = false;
- }
+
+ // if (this.canPanX) {
+ // this.Document._panX = left + 5;
+ // setTimeout(action(() => {
+ // this.panX();
+ // this.canPanX = true;
+ // }), 250);
+ // this.canPanX = false;
+ // }
}
}
@@ -1222,27 +1230,27 @@ export class CollectionFreeFormView extends CollectionSubView<PanZoomDocument, P
if (this._marqueeRef.current.clientHeight > 0) {
if (de.clientY - 120 - this._marqueeRef.current.clientTop < 25) {
console.log("PAN top ");
- if (this.canPanY) {
- this.Document._panY = de.clientY - 20 - this._marqueeRef.current.clientTop;
- setTimeout(action(() => {
- this.canPanY = true;
- this.panY();
- }), 2500);
- this.canPanY = false;
- }
+
+ // if (this.canPanY) {
+ // this.Document._panY = top - 5;
+ // setTimeout(action(() => {
+ // this.canPanY = true;
+ // this.panY();
+ // }), 250);
+ // this.canPanY = false;
+ // }
} else if (de.clientY - 120 - this._marqueeRef.current.clientTop -
this._marqueeRef.current.clientHeight < 25) {
console.log("PAN bottom ");
- if (this.canPanY) {
- this.Document._panY = de.clientY - 120 - this._marqueeRef.current.clientTop -
- this._marqueeRef.current.clientHeight;
-
- setTimeout(action(() => {
- this.panY();
- this.canPanY = true;
- }), 2500);
- this.canPanY = false;
- }
+
+ // if (this.canPanY) {
+ // this.Document._panY = top + 5;
+ // setTimeout(action(() => {
+ // this.panY();
+ // this.canPanY = true;
+ // }), 250);
+ // this.canPanY = false;
+ // }
}
diff --git a/src/client/views/nodes/DocumentLinksButton.tsx b/src/client/views/nodes/DocumentLinksButton.tsx
index 44e72215d..ce96eddfe 100644
--- a/src/client/views/nodes/DocumentLinksButton.tsx
+++ b/src/client/views/nodes/DocumentLinksButton.tsx
@@ -3,7 +3,7 @@ import { observer } from "mobx-react";
import { Doc, DocListCast } from "../../../fields/Doc";
import { emptyFunction, setupMoveUpEvents, returnFalse } from "../../../Utils";
import { DragManager } from "../../util/DragManager";
-import { UndoManager } from "../../util/UndoManager";
+import { UndoManager, undoBatch } from "../../util/UndoManager";
import './DocumentLinksButton.scss';
import { DocumentView } from "./DocumentView";
import React = require("react");
@@ -29,7 +29,7 @@ export class DocumentLinksButton extends React.Component<DocumentLinksButtonProp
@observable public static StartLink: DocumentView | undefined;
- @action
+ @action @undoBatch
onLinkButtonMoved = (e: PointerEvent) => {
if (this._linkButton.current !== null) {
const linkDrag = UndoManager.StartBatch("Drag Link");
@@ -56,7 +56,7 @@ export class DocumentLinksButton extends React.Component<DocumentLinksButtonProp
return false;
}
-
+ @undoBatch
onLinkButtonDown = (e: React.PointerEvent): void => {
setupMoveUpEvents(this, e, this.onLinkButtonMoved, emptyFunction, action((e, doubleTap) => {
if (doubleTap && this.props.InMenu) {
diff --git a/src/client/views/nodes/formattedText/FormattedTextBox.tsx b/src/client/views/nodes/formattedText/FormattedTextBox.tsx
index fc63dfbf5..30e0738bf 100644
--- a/src/client/views/nodes/formattedText/FormattedTextBox.tsx
+++ b/src/client/views/nodes/formattedText/FormattedTextBox.tsx
@@ -944,6 +944,8 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp
frag.forEach(node => nodes.push(marker(node)));
return Fragment.fromArray(nodes);
}
+
+
function addLinkMark(node: Node, title: string, linkId: string) {
if (!node.isText) {
const content = addMarkToFrag(node.content, (node: Node) => addLinkMark(node, title, linkId));