aboutsummaryrefslogtreecommitdiff
path: root/src/client/util/DragManager.ts
diff options
context:
space:
mode:
authormadelinegr <mgriswold99@gmail.com>2019-02-26 18:44:21 -0500
committermadelinegr <mgriswold99@gmail.com>2019-02-26 18:44:21 -0500
commit3b60e04d22f438b81de9e5ce8707e9bbd4a82d0c (patch)
tree517d9f90e90b9441a4d967660ecbcb39a52b8a8e /src/client/util/DragManager.ts
parentc0ebde9f48e3fd5e5c32d72bd6e2f30b55a036a3 (diff)
parent04ee2ad6e7ca887c3cfc7277c4b382f936c0fa6d (diff)
Merge branch 'master' of https://github.com/browngraphicslab/Dash-Web into presentation_view
mer
Diffstat (limited to 'src/client/util/DragManager.ts')
-rw-r--r--src/client/util/DragManager.ts18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/client/util/DragManager.ts b/src/client/util/DragManager.ts
index 0d76d2640..6b4b8ca57 100644
--- a/src/client/util/DragManager.ts
+++ b/src/client/util/DragManager.ts
@@ -2,6 +2,7 @@ import { DocumentDecorations } from "../views/DocumentDecorations";
import { CollectionDockingView } from "../views/collections/CollectionDockingView";
import { Document } from "../../fields/Document"
import { action } from "mobx";
+import { DocumentView } from "../views/nodes/DocumentView";
export function setupDrag(_reference: React.RefObject<HTMLDivElement>, docFunc: () => Document) {
let onRowMove = action((e: PointerEvent): void => {
@@ -23,7 +24,6 @@ export function setupDrag(_reference: React.RefObject<HTMLDivElement>, docFunc:
if (e.shiftKey) {
CollectionDockingView.Instance.StartOtherDrag(docFunc(), e);
} else {
- e.preventDefault();
document.addEventListener("pointermove", onRowMove);
document.addEventListener('pointerup', onRowUp);
}
@@ -139,22 +139,32 @@ export namespace DragManager {
e.preventDefault();
x += e.movementX;
y += e.movementY;
+ if (e.shiftKey) {
+ abortDrag();
+ const docView: DocumentView = dragData["documentView"];
+ const doc: Document = docView ? docView.props.Document : dragData["document"];
+ CollectionDockingView.Instance.StartOtherDrag(doc, { pageX: e.pageX, pageY: e.pageY, preventDefault: () => { }, button: 0 });
+ }
dragElement.style.transform = `translate(${x}px, ${y}px) scale(${scaleX}, ${scaleY})`;
};
- const upHandler = (e: PointerEvent) => {
+
+ const abortDrag = () => {
document.removeEventListener("pointermove", moveHandler, true);
document.removeEventListener("pointerup", upHandler);
- FinishDrag(dragElement, e, dragData, options);
+ dragDiv.removeChild(dragElement);
if (hideSource && !wasHidden) {
ele.hidden = false;
}
+ }
+ const upHandler = (e: PointerEvent) => {
+ abortDrag();
+ FinishDrag(dragElement, e, dragData, options);
};
document.addEventListener("pointermove", moveHandler, true);
document.addEventListener("pointerup", upHandler);
}
function FinishDrag(dragEle: HTMLElement, e: PointerEvent, dragData: { [index: string]: any }, options?: DragOptions) {
- dragDiv.removeChild(dragEle);
const target = document.elementFromPoint(e.x, e.y);
if (!target) {
return;