From c5997ed05603703a3c6f7d794a1e85d7ba5596da Mon Sep 17 00:00:00 2001 From: Alexander Rose <alex.rose@rcsb.org> Date: Tue, 1 Oct 2019 14:11:01 -0700 Subject: [PATCH] reset buttons and modifier keys state when browser window looses focus --- src/mol-util/input/input-observer.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mol-util/input/input-observer.ts b/src/mol-util/input/input-observer.ts index 84e1a994d..b2cc707b3 100644 --- a/src/mol-util/input/input-observer.ts +++ b/src/mol-util/input/input-observer.ts @@ -251,6 +251,7 @@ namespace InputObserver { element.addEventListener('wheel', onMouseWheel as any, false) element.addEventListener('mousedown', onMouseDown as any, false) + // for dragging to work outside canvas bounds, // mouse move/up events have to be added to a parent, i.e. window window.addEventListener('mousemove', onMouseMove as any, false) @@ -263,7 +264,8 @@ namespace InputObserver { element.addEventListener('touchmove', onTouchMove as any, false) element.addEventListener('touchend', onTouchEnd as any, false) - element.addEventListener('blur', handleBlur) + // reset buttons and modifier keys state when browser window looses focus + window.addEventListener('blur', handleBlur) window.addEventListener('keyup', handleKeyUp as EventListener, false) window.addEventListener('keydown', handleKeyDown as EventListener, false) @@ -288,7 +290,7 @@ namespace InputObserver { element.removeEventListener('touchmove', onTouchMove as any, false) element.removeEventListener('touchend', onTouchEnd as any, false) - element.removeEventListener('blur', handleBlur) + window.removeEventListener('blur', handleBlur) window.removeEventListener('keyup', handleKeyUp as EventListener, false) window.removeEventListener('keydown', handleKeyDown as EventListener, false) -- GitLab