From 4ff9dd026c64dea711e197f0ad72e71f67543017 Mon Sep 17 00:00:00 2001 From: Sebastian Luaces Date: Mon, 25 Oct 2021 13:20:39 -0300 Subject: [PATCH 1/2] fix(widgets): fix paintWidget ignore keys alt, control and shift --- Sources/Widgets/Widgets3D/PaintWidget/behavior.js | 15 ++++++++++++++- Sources/Widgets/Widgets3D/ShapeWidget/behavior.js | 11 ++++++++++- .../Widgets/Widgets3D/SplineWidget/behavior.js | 14 ++++++++++++-- 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/Sources/Widgets/Widgets3D/PaintWidget/behavior.js b/Sources/Widgets/Widgets3D/PaintWidget/behavior.js index ed343064039..8c9a5630d7b 100644 --- a/Sources/Widgets/Widgets3D/PaintWidget/behavior.js +++ b/Sources/Widgets/Widgets3D/PaintWidget/behavior.js @@ -2,8 +2,21 @@ 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()) { + 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; } From 5a7f1ba0692311aa5882b160ae230bafcfecf3fa Mon Sep 17 00:00:00 2001 From: Sebastian Luaces Date: Wed, 27 Oct 2021 08:44:36 -0300 Subject: [PATCH 2/2] fix(widgets): Remove comment in paintWidget --- Sources/Widgets/Widgets3D/PaintWidget/behavior.js | 1 - 1 file changed, 1 deletion(-) diff --git a/Sources/Widgets/Widgets3D/PaintWidget/behavior.js b/Sources/Widgets/Widgets3D/PaintWidget/behavior.js index 8c9a5630d7b..b41a5238e5b 100644 --- a/Sources/Widgets/Widgets3D/PaintWidget/behavior.js +++ b/Sources/Widgets/Widgets3D/PaintWidget/behavior.js @@ -11,7 +11,6 @@ export default function widgetBehavior(publicAPI, model) { } publicAPI.handleLeftButtonPress = (callData) => { - // if (!model.activeState || !model.activeState.getActive()) { if ( !model.activeState || !model.activeState.getActive() ||