From 69821ac04efcf66013b8df389c1afa952bec47fd Mon Sep 17 00:00:00 2001 From: David Sehnal <david.sehnal@gmail.com> Date: Mon, 30 Jul 2018 18:05:21 +0200 Subject: [PATCH] Fixed viewer.click event --- src/mol-app/ui/visualization/viewport.tsx | 1 + src/mol-util/input/input-observer.ts | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/mol-app/ui/visualization/viewport.tsx b/src/mol-app/ui/visualization/viewport.tsx index 902882921..11fef7e54 100644 --- a/src/mol-app/ui/visualization/viewport.tsx +++ b/src/mol-app/ui/visualization/viewport.tsx @@ -170,6 +170,7 @@ export class Viewport extends View<ViewportController, ViewportState, { noWebGl? this.setState({ info }) }) + // TODO filter only for left button? viewer.input.click.subscribe(({x, y}) => { const loci = viewer.getLoci(viewer.identify(x, y)) InteractivityEvents.SelectLoci.dispatch(this.controller.context, loci); diff --git a/src/mol-util/input/input-observer.ts b/src/mol-util/input/input-observer.ts index b1f7073cf..f622969cf 100644 --- a/src/mol-util/input/input-observer.ts +++ b/src/mol-util/input/input-observer.ts @@ -145,6 +145,7 @@ namespace InputObserver { const lineHeight = toPixels('ex', element) let lastTouchDistance = 0 + const pointerDown = Vec2.zero() const pointerStart = Vec2.zero() const pointerEnd = Vec2.zero() const pointerDelta = Vec2.zero() @@ -334,6 +335,8 @@ namespace InputObserver { function onPointerDown (ev: PointerEvent) { eventOffset(pointerStart, ev) + Vec2.copy(pointerDown, pointerStart) + if (insideBounds(pointerStart)) { dragging = DraggingState.Started } @@ -342,9 +345,8 @@ namespace InputObserver { function onPointerUp (ev: PointerEvent) { dragging = DraggingState.Stopped - if (Vec2.distance(pointerEnd, pointerStart) < 4) { - eventOffset(pointerEnd, ev) - + eventOffset(pointerEnd, ev); + if (Vec2.distance(pointerEnd, pointerDown) < 4) { const { pageX, pageY } = ev const [ x, y ] = pointerEnd -- GitLab