Open
Description
The NumberInput widget should support more common ways of modifying numerical widgets, namely:
- Dragging left/right to adjust the value (Allow NumberInput value to be dragged and right-click/escape to abort the drag #1468)
- When dragging, Shift slows it down by adjusting the next order of magnitude of less precision and Ctrl snaps to increments of the current order of magnitude of precision (Allow NumberInput value to be dragged and right-click/escape to abort the drag #1468)
- When dragging, Escape and right click abort the change (Allow NumberInput value to be dragged and right-click/escape to abort the drag #1468)
- Add an integrated label to be shown on the left side, with the value on the right side, instead of the default value-centered display
- Math in the number input boxes #1471
- Holding down the mouse button on the arrow to change it multiple times; this should probably work like key repeat, with an initial delay and a constant rate of repetition (Polish and add aborting to several input widgets: no Esc closing parent menus; color picker axis align; repeat on arrow buttons #2276)
- While editing the number field, Up/Down arrows should increment/decrement by 1 and Shift+Up/Down by 10
- Hover mouse over it to copy and paste value
- Hover mouse over and hit Backspace to reset the value to its default
- Hover mouse over and hit - to negate the current value
- Hover mouse over it and hit Enter key to start editing (like clicking)
- Hover mouse over it and hit / to set the value to its reciprocal
- Hover mouse over it and Ctrl+scroll wheel to increment/decrement the value
- Detect and clean up floating point imprecision with numbers like
123.450000000000003
or0.9999999999997
using a heuristic to convert those to123.45
and1.0
. - Precision issues with values greater than JS's
Number.MAX_SAFE_INTEGER
(9007199254740991
) which is still less than Rust'su64
. Typing certain values like9007199254740995
and9007199254740997
both get turned into nearby values like9007199254740995
for some but not all values. This means we need to usebigint
more consistently throughout the entire pipeline in the frontend. - Unit conversions in the input boxes, blocked on Real-world units of measure #586
Metadata
Metadata
Assignees
Type
Projects
Status
Ongoing Projects