Summary
The R key (Rotate selected features) and Shift+R (Toggle Rapid data layer) may conflict in certain editing contexts.
Current Bindings
| Key |
Action |
Registered In |
| R |
Rotate selected features |
modules/operations/rotate.js (line 79) |
| Shift+R |
Toggle Rapid dataset layer |
modules/ui/sections/data_layers.js (line 480) |
How the Keybinding System Works
The keybinding system (modules/util/keybinding.js) uses a two-pass matching approach:
- First pass (lines 19-31): Checks shifted keybindings (Shift+R) - these have priority
- Second pass (lines 35-44): Falls back to unshifted keybindings (R)
The code comment (lines 14-17) states:
"Most key shortcuts will accept either lower or uppercase, so we don't strictly match on the shift key, but we prioritize shifted keybindings first, and fallback to unshifted only if no match."
Potential Issue
Due to the fallback behavior, pressing Shift+R could potentially trigger the Rotate operation as a fallback if the Toggle Rapid binding is not matched in the current context/mode. This needs testing to confirm the exact scenarios where the conflict manifests.
Steps to Reproduce
- Open Rapid editor
- Select a building feature
- Press Shift+R
- Observe whether the feature rotates or the Rapid layer toggles (or both)
Key Files
modules/util/keybinding.js - Keybinding matching logic (two-pass system)
modules/operations/rotate.js - Rotate operation (R key, line 79)
modules/ui/sections/data_layers.js - Toggle Rapid data (Shift+R, line 480)
data/shortcuts.json - Shortcut definitions
Summary
The R key (Rotate selected features) and Shift+R (Toggle Rapid data layer) may conflict in certain editing contexts.
Current Bindings
modules/operations/rotate.js(line 79)modules/ui/sections/data_layers.js(line 480)How the Keybinding System Works
The keybinding system (
modules/util/keybinding.js) uses a two-pass matching approach:The code comment (lines 14-17) states:
Potential Issue
Due to the fallback behavior, pressing Shift+R could potentially trigger the Rotate operation as a fallback if the Toggle Rapid binding is not matched in the current context/mode. This needs testing to confirm the exact scenarios where the conflict manifests.
Steps to Reproduce
Key Files
modules/util/keybinding.js- Keybinding matching logic (two-pass system)modules/operations/rotate.js- Rotate operation (R key, line 79)modules/ui/sections/data_layers.js- Toggle Rapid data (Shift+R, line 480)data/shortcuts.json- Shortcut definitions