Merge pull request #31889 from Calinou/gradient-editor-add-snapping

Implement snapping in the Gradient editor
This commit is contained in:
Rémi Verschelde 2019-09-02 22:12:04 +02:00 committed by GitHub
commit 413db5d8ff
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -241,9 +241,13 @@ void GradientEdit::_gui_input(const Ref<InputEvent> &p_event) {
float newofs = CLAMP(x / float(total_w), 0, 1);
//Snap to nearest point if holding shift
if (mm->get_shift()) {
float snap_threshold = 0.03;
// Snap to "round" coordinates if holding Ctrl.
// Be more precise if holding Shift as well
if (mm->get_control()) {
newofs = Math::stepify(newofs, mm->get_shift() ? 0.025 : 0.1);
} else if (mm->get_shift()) {
// Snap to nearest point if holding just Shift
const float snap_threshold = 0.03;
float smallest_ofs = snap_threshold;
bool found = false;
int nearest_point = 0;