mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-26 11:09:23 -06:00
The wheels had Shift (keep the hue, change saturation). Lightroom's other two modifiers are now there too: - Cmd/Ctrl-drag keeps the puck's saturation and changes only the hue, so it moves round its circle; the circle is drawn as the guide, as Shift draws the spoke. Shift wins when both are down (keeping both would freeze the puck). - Alt/Option-drag fine-adjusts: the puck moves a tenth as far as the pointer from where it was grabbed (the slider's fine-adjust factor), counted from the press so no travel is lost to egui's drag threshold. It combines with Shift and Cmd/Ctrl. - Pressing or releasing a modifier mid-drag re-grabs the puck as it is at that moment (WheelGrab); wheel_pick takes a WheelLock (Hue / Sat) and returns finite values for any input. - A puck at the centre has no hue, so a Shift-drag from there now takes the angle where the pointer pressed, not where egui first reported a drag. - The wheel has a hover tooltip naming the modifiers. Shift-drag already kept the puck's own hue whenever its saturation was 1 or more; shift_drag_keeps_the_pucks_hue_wherever_the_pointer_grabs pins that. Tests (tests_grading.rs) drive the wheel through ui.dragWidget with each modifier and check the develop values and one undo step per drag, plus unit tests of wheel_pick (lock, clamp, centre, NaN/inf) and WheelGrab.