From e225ee24515a68ca51df978bda823df0b09d72d8 Mon Sep 17 00:00:00 2001
From: Alexander Rose <alex.rose@rcsb.org>
Date: Fri, 7 Sep 2018 19:32:20 -0700
Subject: [PATCH] don't render while picking

---
 src/mol-view/viewer.ts | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/mol-view/viewer.ts b/src/mol-view/viewer.ts
index 9cf36a5f2..4e4384cbc 100644
--- a/src/mol-view/viewer.ts
+++ b/src/mol-view/viewer.ts
@@ -110,6 +110,7 @@ namespace Viewer {
         const groupPickTarget = createRenderTarget(ctx, pickWidth, pickHeight)
 
         let pickDirty = true
+        let isPicking = false
         let drawPending = false
         let lastRenderTime = -1
         const prevProjectionView = Mat4.zero()
@@ -149,6 +150,7 @@ namespace Viewer {
         }
 
         function render(variant: RenderVariant, force?: boolean) {
+            if (isPicking) return false
             // const p = scene.boundingSphere.center
             // console.log(p[0], p[1], p[2])
             // Vec3.set(controls.target, p[0], p[1], p[2])
@@ -226,6 +228,8 @@ namespace Viewer {
         function identify(x: number, y: number): PickingId | undefined {
             if (pickDirty) return undefined
 
+            isPicking = true
+
             x *= ctx.pixelRatio
             y *= ctx.pixelRatio
             y = canvas.height - y // flip y
@@ -246,6 +250,8 @@ namespace Viewer {
             ctx.readPixels(xp, yp, 1, 1, buffer)
             const groupId = decodeIdRGBA(buffer[0], buffer[1], buffer[2])
 
+            isPicking = false
+
             return { objectId, instanceId, groupId }
         }
 
-- 
GitLab