Skip to content

Commit bc8027a

Browse files
committed
Prevent widget from accidentally moving when clicked #671
1 parent 8e0775a commit bc8027a

File tree

5 files changed

+23
-14
lines changed

5 files changed

+23
-14
lines changed

packages/project-editor/features/changes/flow-viewer.tsx

+4-2
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,8 @@ export const Canvas = observer(
442442
movementX: event.movementX ?? 0,
443443
movementY: event.movementY ?? 0,
444444
ctrlKey: event.ctrlKey,
445-
shiftKey: event.shiftKey
445+
shiftKey: event.shiftKey,
446+
timeStamp: event.timeStamp
446447
};
447448

448449
this.mouseHandler.down(this.props.flowContext, event);
@@ -465,7 +466,8 @@ export const Canvas = observer(
465466
? this.mouseHandler.lastPointerEvent.movementY
466467
: 0,
467468
ctrlKey: event.ctrlKey,
468-
shiftKey: event.shiftKey
469+
shiftKey: event.shiftKey,
470+
timeStamp: event.timeStamp
469471
};
470472

471473
this.mouseHandler.move(this.props.flowContext, event);

packages/project-editor/features/page/PageTimeline.tsx

+4-2
Original file line numberDiff line numberDiff line change
@@ -612,7 +612,8 @@ const TimelineEditor = observer(
612612
movementX: e.movementX ?? 0,
613613
movementY: e.movementY ?? 0,
614614
ctrlKey: e.ctrlKey,
615-
shiftKey: e.shiftKey
615+
shiftKey: e.shiftKey,
616+
timeStamp: e.timeStamp
616617
};
617618

618619
const dragSettings = hitTest(this.props.timelineState, e, x1, y1);
@@ -763,7 +764,8 @@ const TimelineEditor = observer(
763764
movementX: e.movementX ?? 0,
764765
movementY: e.movementY ?? 0,
765766
ctrlKey: e.ctrlKey,
766-
shiftKey: e.shiftKey
767+
shiftKey: e.shiftKey,
768+
timeStamp: e.timeStamp
767769
};
768770

769771
const rectSvg = this.svgRef.current!.getBoundingClientRect();

packages/project-editor/flow/editor/editor.tsx

+4-2
Original file line numberDiff line numberDiff line change
@@ -646,7 +646,8 @@ export const Canvas = observer(
646646
movementX: event.movementX ?? 0,
647647
movementY: event.movementY ?? 0,
648648
ctrlKey: event.ctrlKey,
649-
shiftKey: event.shiftKey
649+
shiftKey: event.shiftKey,
650+
timeStamp: event.timeStamp
650651
};
651652

652653
this.mouseHandler.down(this.props.flowContext, event);
@@ -669,7 +670,8 @@ export const Canvas = observer(
669670
? this.mouseHandler.lastPointerEvent.movementY
670671
: 0,
671672
ctrlKey: event.ctrlKey,
672-
shiftKey: event.shiftKey
673+
shiftKey: event.shiftKey,
674+
timeStamp: event.timeStamp
673675
};
674676

675677
this.mouseHandler.move(this.props.flowContext, event);

packages/project-editor/flow/editor/mouse-handler.tsx

+7-6
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ export interface IPointerEvent {
5656
movementY: number;
5757
ctrlKey: boolean;
5858
shiftKey: boolean;
59+
timeStamp: number;
5960
}
6061

6162
////////////////////////////////////////////////////////////////////////////////
@@ -91,7 +92,7 @@ export class MouseHandler implements IMouseHandler {
9192
down(context: IFlowContext, event: IPointerEvent) {
9293
this.transform = context.viewState.transform;
9394

94-
this.timeAtDown = new Date().getTime();
95+
this.timeAtDown = event.timeStamp;
9596

9697
this.lastOffsetPoint = this.offsetPointAtDown =
9798
this.transform.pointerEventToOffsetPoint(event);
@@ -106,7 +107,7 @@ export class MouseHandler implements IMouseHandler {
106107
move(context: IFlowContext, event: IPointerEvent) {
107108
this.transform = context.viewState.transform;
108109

109-
this.elapsedTime = new Date().getTime() - this.timeAtDown;
110+
this.elapsedTime = event.timeStamp - this.timeAtDown;
110111

111112
let offsetPoint = this.transform.pointerEventToOffsetPoint(event);
112113

@@ -395,13 +396,13 @@ export class DragMouseHandler extends MouseHandlerWithSnapLines {
395396
move(context: IFlowContext, event: IPointerEvent) {
396397
super.move(context, event);
397398

398-
if (this.elapsedTime < 100 && this.distance < 20) {
399-
return;
400-
}
401-
402399
this.left += this.movement.x / context.viewState.transform.scale;
403400
this.top += this.movement.y / context.viewState.transform.scale;
404401

402+
if (this.elapsedTime < 200 && this.distance < 10) {
403+
return;
404+
}
405+
405406
const { left, top } = this.snapLines.dragSnap(
406407
this.left,
407408
this.top,

packages/project-editor/flow/runtime-viewer/viewer.tsx

+4-2
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,8 @@ export const Canvas = observer(
322322
movementX: event.movementX ?? 0,
323323
movementY: event.movementY ?? 0,
324324
ctrlKey: event.ctrlKey,
325-
shiftKey: event.shiftKey
325+
shiftKey: event.shiftKey,
326+
timeStamp: event.timeStamp
326327
};
327328

328329
this.mouseHandler.down(this.props.flowContext, event);
@@ -345,7 +346,8 @@ export const Canvas = observer(
345346
? this.mouseHandler.lastPointerEvent.movementY
346347
: 0,
347348
ctrlKey: event.ctrlKey,
348-
shiftKey: event.shiftKey
349+
shiftKey: event.shiftKey,
350+
timeStamp: event.timeStamp
349351
};
350352

351353
this.mouseHandler.move(this.props.flowContext, event);

0 commit comments

Comments
 (0)