Fix #107011: Boolean Modifier Overlap Threshold property issue in UI when value is 0 #107466

Closed
Pratik Borhade wants to merge 3 commits from PratikPB2123/blender:fix-107011-overlap-threeshold into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
1 changed files with 9 additions and 7 deletions

View File

@ -5085,14 +5085,13 @@ static bool ui_numedit_but_NUM(uiButNumber *but,
break;
}
case PROP_SCALE_LOG: {
const float startvalue = max_ff(float(data->startvalue), log_min);
if (tempf < log_min) {
data->dragstartx -= logf(log_min / float(data->startvalue)) / fac -
float(mx - data->dragstartx);
data->dragstartx -= logf(log_min / startvalue) / fac - float(mx - data->dragstartx);
tempf = softmin;
}
else if (tempf > softmax) {
data->dragstartx -= logf(softmax / float(data->startvalue)) / fac -
float(mx - data->dragstartx);
data->dragstartx -= logf(softmax / startvalue) / fac - float(mx - data->dragstartx);
tempf = softmax;
}
break;
@ -5492,9 +5491,12 @@ static int ui_do_but_NUM(
double value_step;
if (scale_type == PROP_SCALE_LOG) {
value_step = powf(10.0f,
(roundf(log10f(data->value) + UI_PROP_SCALE_LOG_SNAP_OFFSET) - 1.0f) +
log10f(number_but->step_size));
double precision = (roundf(log10f(data->value) + UI_PROP_SCALE_LOG_SNAP_OFFSET) - 1.0f) +
log10f(number_but->step_size);
if (!isfinite(precision)) {
precision = -FLT_MAX; /* Happens when `data->value` is zero. */
}
value_step = powf(10.0f, max_ff(precision, -number_but->precision));
}
else {
value_step = double(number_but->step_size * UI_PRECISION_FLOAT_SCALE);