Browse Source

prevent browser scrolling with middle click (FF on win)

Alexander Rose 5 years ago
parent
commit
9963cb3770
1 changed files with 5 additions and 1 deletions
  1. 5 1
      src/mol-util/input/input-observer.ts

+ 5 - 1
src/mol-util/input/input-observer.ts

@@ -48,6 +48,7 @@ export function getModifiers(event: MouseEvent | Touch): ModifiersKeys {
 
 export const DefaultInputObserverProps = {
     noScroll: true,
+    noMiddleClickScroll: true,
     noContextMenu: true,
     noPinchZoom: true
 }
@@ -206,7 +207,7 @@ namespace InputObserver {
     }
 
     export function fromElement(element: Element, props: InputObserverProps = {}): InputObserver {
-        let { noScroll, noContextMenu, noPinchZoom } = { ...DefaultInputObserverProps, ...props }
+        let { noScroll, noMiddleClickScroll, noContextMenu, noPinchZoom } = { ...DefaultInputObserverProps, ...props }
 
         let lastTouchDistance = 0
         const pointerDown = Vec2.zero()
@@ -424,6 +425,9 @@ namespace InputObserver {
         function onMouseDown(ev: MouseEvent) {
             updateModifierKeys(ev)
             buttons = getButtons(ev)
+            if (noMiddleClickScroll && buttons === ButtonsType.Flag.Auxilary) {
+                ev.preventDefault
+            }
             onPointerDown(ev)
         }