diff --git a/Sources/Widgets/Widgets3D/PaintWidget/behavior.js b/Sources/Widgets/Widgets3D/PaintWidget/behavior.js index ed343064039..b41a5238e5b 100644 --- a/Sources/Widgets/Widgets3D/PaintWidget/behavior.js +++ b/Sources/Widgets/Widgets3D/PaintWidget/behavior.js @@ -2,8 +2,20 @@ import macro from 'vtk.js/Sources/macros'; import { vec3 } from 'gl-matrix'; export default function widgetBehavior(publicAPI, model) { + // -------------------------------------------------------------------------- + // Interactor events + // -------------------------------------------------------------------------- + + function ignoreKey(e) { + return e.altKey || e.controlKey || e.shiftKey; + } + publicAPI.handleLeftButtonPress = (callData) => { - if (!model.activeState || !model.activeState.getActive()) { + if ( + !model.activeState || + !model.activeState.getActive() || + ignoreKey(callData) + ) { return macro.VOID; } diff --git a/Sources/Widgets/Widgets3D/ShapeWidget/behavior.js b/Sources/Widgets/Widgets3D/ShapeWidget/behavior.js index 7341fc84565..9e9dd37dd56 100644 --- a/Sources/Widgets/Widgets3D/ShapeWidget/behavior.js +++ b/Sources/Widgets/Widgets3D/ShapeWidget/behavior.js @@ -506,6 +506,14 @@ export default function widgetBehavior(publicAPI, model) { return model.hasFocus ? macro.EVENT_ABORT : macro.VOID; }; + // -------------------------------------------------------------------------- + // Interactor events + // -------------------------------------------------------------------------- + + function ignoreKey(e) { + return e.altKey || e.controlKey || e.shiftKey; + } + // -------------------------------------------------------------------------- // Left click: Add point / End interaction // -------------------------------------------------------------------------- @@ -514,7 +522,8 @@ export default function widgetBehavior(publicAPI, model) { if ( !model.activeState || !model.activeState.getActive() || - !model.pickable + !model.pickable || + ignoreKey(e) ) { return macro.VOID; } diff --git a/Sources/Widgets/Widgets3D/SplineWidget/behavior.js b/Sources/Widgets/Widgets3D/SplineWidget/behavior.js index a9799c6a246..7af3905e7dd 100644 --- a/Sources/Widgets/Widgets3D/SplineWidget/behavior.js +++ b/Sources/Widgets/Widgets3D/SplineWidget/behavior.js @@ -136,6 +136,14 @@ export default function widgetBehavior(publicAPI, model) { model.firstHandle = null; }; + // -------------------------------------------------------------------------- + // Interactor events + // -------------------------------------------------------------------------- + + function ignoreKey(e) { + return e.altKey || e.controlKey || e.shiftKey; + } + // -------------------------------------------------------------------------- // Right click: Delete handle // -------------------------------------------------------------------------- @@ -144,7 +152,8 @@ export default function widgetBehavior(publicAPI, model) { if ( !model.activeState || !model.activeState.getActive() || - !model.pickable + !model.pickable || + ignoreKey(e) ) { return macro.VOID; } @@ -179,7 +188,8 @@ export default function widgetBehavior(publicAPI, model) { if ( !model.activeState || !model.activeState.getActive() || - !model.pickable + !model.pickable || + ignoreKey(e) ) { return macro.VOID; }