From 72a24ce13134260ba1a94a036cc9b52c3749f7cb Mon Sep 17 00:00:00 2001 From: root <> Date: Sun, 27 Apr 2025 10:11:07 +0000 Subject: [PATCH] keyboard shortcuts; ignore when some inputs active --- sketch.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/sketch.js b/sketch.js index 69cfa08..79b2c4a 100644 --- a/sketch.js +++ b/sketch.js @@ -297,7 +297,26 @@ function make_lights() { function keyPressed() { if (key == ' ') { + if ( + document.activeElement !== input_charge && + document.activeElement !== document.body + ) return; toggle_physics(); + } else if (key == 's') { + toggle_physics(); + } else if (key == 'a') { + input_charge.valueAsNumber = 0; + input_charge.oninput(); + } else if (key == '[') { + input_charge.valueAsNumber -= Number(input_charge.step); + input_charge.oninput(); + } else if (key == ']') { + input_charge.valueAsNumber += Number(input_charge.step); + input_charge.oninput(); + } else if (key == '-') { + make_particles(max(0, int(particles.length) - 1)); + } else if (key == '=') { + make_particles(min(360, int(particles.length) + 1)); } else if (key == 'd') { set_surface((surface + 1) % 3); } else if (key == 'f') { @@ -305,6 +324,7 @@ function keyPressed() { } else if (key == 'g') { toggle_polytope(); } else if (key >= '0' && key <= '9') { + if (document.activeElement === input_particles) return; make_particles(int(key)); } }