diff options
author | Bob Zeleznik <zzzman@gmail.com> | 2019-04-10 22:40:11 -0400 |
---|---|---|
committer | Bob Zeleznik <zzzman@gmail.com> | 2019-04-10 22:40:11 -0400 |
commit | a04f690bf0f8104b48a8493905ee083f9b1504dc (patch) | |
tree | b6f72aaac53ffcce55e9e05593856449e4eddf89 | |
parent | a4ad421d9be4872f906238378944ceed36370d93 (diff) |
changed drag of selected text to wait for a move event.
-rw-r--r-- | src/client/views/Main.tsx | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/src/client/views/Main.tsx b/src/client/views/Main.tsx index 684738657..8153250c7 100644 --- a/src/client/views/Main.tsx +++ b/src/client/views/Main.tsx @@ -236,18 +236,32 @@ export class Main extends React.Component { } textBoxDown = (e: React.PointerEvent) => { - let dragData = new DragManager.DocumentDragData([this._textDoc!]); - const [left, top] = this._textXf - .inverse() - .transformPoint(0, 0); - dragData.xOffset = e.clientX - left; - dragData.yOffset = e.clientY - top; - DragManager.StartDocumentDrag([this._textTargetDiv!], dragData, e.clientX, e.clientY, { - handlers: { - dragComplete: action(emptyFunction), - }, - hideSource: false - }); + if (e.button != 0 || e.metaKey || e.altKey) { + document.addEventListener("pointermove", this.textBoxMove); + document.addEventListener('pointerup', this.textBoxUp); + } + } + textBoxMove = (e: PointerEvent) => { + if (e.movementX > 1 || e.movementY > 1) { + document.removeEventListener("pointermove", this.textBoxMove); + document.removeEventListener('pointerup', this.textBoxUp); + let dragData = new DragManager.DocumentDragData([this._textDoc!]); + const [left, top] = this._textXf + .inverse() + .transformPoint(0, 0); + dragData.xOffset = e.clientX - left; + dragData.yOffset = e.clientY - top; + DragManager.StartDocumentDrag([this._textTargetDiv!], dragData, e.clientX, e.clientY, { + handlers: { + dragComplete: action(emptyFunction), + }, + hideSource: false + }); + } + } + textBoxUp = (e: PointerEvent) => { + document.removeEventListener("pointermove", this.textBoxMove); + document.removeEventListener('pointerup', this.textBoxUp); } @computed |