소스 검색

Make Range return 1.0 ratio if minimum and maximum values are equal

An error message is also no longer printed.
This matches the behavior found in most UI frameworks where having
equal minimum and maximum values is considered acceptable.

This closes #43179.

(cherry picked from commit 44204ec32d30a59b77c75a38406676774885a595)
Hugo Locurcio 4 년 전
부모
커밋
76bd7d796b
1개의 변경된 파일4개의 추가작업 그리고 2개의 파일을 삭제
  1. 4 2
      scene/gui/range.cpp

+ 4 - 2
scene/gui/range.cpp

@@ -170,8 +170,10 @@ void Range::set_as_ratio(double p_value) {
 	set_value(v);
 }
 double Range::get_as_ratio() const {
-
-	ERR_FAIL_COND_V_MSG(Math::is_equal_approx(get_max(), get_min()), 0.0, "Cannot get ratio when minimum and maximum value are equal.");
+	if (Math::is_equal_approx(get_max(), get_min())) {
+		// Avoid division by zero.
+		return 1.0;
+	}
 
 	if (shared->exp_ratio && get_min() >= 0) {