Merge pull request #33908 from akien-mga/range-fix-max-errors

Range: Fix cases where max was set to or below min value
This commit is contained in:
Rémi Verschelde 2019-11-26 10:51:20 +01:00 committed by GitHub
commit a698fd1b46
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 7 additions and 9 deletions

View File

@ -702,13 +702,13 @@ AnimationNodeBlendSpace1DEditor::AnimationNodeBlendSpace1DEditor() {
bottom_hb->set_h_size_flags(SIZE_EXPAND_FILL); bottom_hb->set_h_size_flags(SIZE_EXPAND_FILL);
min_value = memnew(SpinBox); min_value = memnew(SpinBox);
min_value->set_max(0);
min_value->set_min(-10000); min_value->set_min(-10000);
min_value->set_max(0);
min_value->set_step(0.01); min_value->set_step(0.01);
max_value = memnew(SpinBox); max_value = memnew(SpinBox);
max_value->set_max(10000);
max_value->set_min(0.01); max_value->set_min(0.01);
max_value->set_max(10000);
max_value->set_step(0.01); max_value->set_step(0.01);
label_value = memnew(LineEdit); label_value = memnew(LineEdit);

View File

@ -969,16 +969,16 @@ void ItemList::_notification(int p_what) {
} }
if (all_fit) { if (all_fit) {
float page = size.height - bg->get_minimum_size().height; float page = MAX(0, size.height - bg->get_minimum_size().height);
float max = MAX(page, ofs.y + max_h); float max = MAX(page, ofs.y + max_h);
if (auto_height) if (auto_height)
auto_height_value = ofs.y + max_h + bg->get_minimum_size().height; auto_height_value = ofs.y + max_h + bg->get_minimum_size().height;
scroll_bar->set_max(max);
scroll_bar->set_page(page);
if (max <= page) { if (max <= page) {
scroll_bar->set_value(0); scroll_bar->set_value(0);
scroll_bar->hide(); scroll_bar->hide();
} else { } else {
scroll_bar->set_max(max);
scroll_bar->set_page(page);
scroll_bar->show(); scroll_bar->show();
if (do_autoscroll_to_bottom) if (do_autoscroll_to_bottom)

View File

@ -100,6 +100,7 @@ void Range::set_value(double p_val) {
shared->emit_value_changed(); shared->emit_value_changed();
} }
void Range::set_min(double p_min) { void Range::set_min(double p_min) {
ERR_FAIL_COND_MSG(p_min >= shared->max, "Range cannot have min value higher or equal to its max value.");
shared->min = p_min; shared->min = p_min;
set_value(shared->val); set_value(shared->val);
@ -109,6 +110,7 @@ void Range::set_min(double p_min) {
update_configuration_warning(); update_configuration_warning();
} }
void Range::set_max(double p_max) { void Range::set_max(double p_max) {
ERR_FAIL_COND_MSG(p_max <= shared->min, "Range cannot have max value lower or equal to its min value.");
shared->max = p_max; shared->max = p_max;
set_value(shared->val); set_value(shared->val);

View File

@ -388,7 +388,6 @@ void ScrollContainer::update_scrollbars() {
if (hide_scroll_v) { if (hide_scroll_v) {
v_scroll->hide(); v_scroll->hide();
v_scroll->set_max(0);
scroll.y = 0; scroll.y = 0;
} else { } else {
@ -406,7 +405,6 @@ void ScrollContainer::update_scrollbars() {
if (hide_scroll_h) { if (hide_scroll_h) {
h_scroll->hide(); h_scroll->hide();
h_scroll->set_max(0);
scroll.x = 0; scroll.x = 0;
} else { } else {

View File

@ -417,7 +417,6 @@ void TextEdit::_update_scrollbars() {
cursor.line_ofs = 0; cursor.line_ofs = 0;
cursor.wrap_ofs = 0; cursor.wrap_ofs = 0;
v_scroll->set_value(0); v_scroll->set_value(0);
v_scroll->set_max(0);
v_scroll->hide(); v_scroll->hide();
} }
@ -436,7 +435,6 @@ void TextEdit::_update_scrollbars() {
cursor.x_ofs = 0; cursor.x_ofs = 0;
h_scroll->set_value(0); h_scroll->set_value(0);
h_scroll->set_max(0);
h_scroll->hide(); h_scroll->hide();
} }