Skip to content

Commit

Permalink
Make sure that data.last_minimum_size is consistent with `get_combi…
Browse files Browse the repository at this point in the history
…ned_minimum_size()` at the same time

Move the code for switching `data.minimum_size_valid` in `Control::update_minimum_size()`
to `Control::_update_minimum_size()`, make sure to switch `data.minimum_size_valid` to
`false` only before updating `data.last_minimum_size` , so that it will remain consistent
with `get_combined_minimum_size()`.
  • Loading branch information
Rindbee committed Jun 1, 2023
1 parent 5c2295f commit 594852c
Showing 1 changed file with 15 additions and 19 deletions.
34 changes: 15 additions & 19 deletions scene/gui/control.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1582,22 +1582,6 @@ void Control::_update_minimum_size() {
return;
}

Size2 minsize = get_combined_minimum_size();
data.updating_last_minimum_size = false;

if (minsize != data.last_minimum_size) {
data.last_minimum_size = minsize;
_size_changed();
emit_signal(SceneStringNames::get_singleton()->minimum_size_changed);
}
}

void Control::update_minimum_size() {
ERR_MAIN_THREAD_GUARD;
if (!is_inside_tree() || data.block_minimum_size_adjust) {
return;
}

Control *invalidate = this;

// Invalidate cache upwards.
Expand All @@ -1620,6 +1604,21 @@ void Control::update_minimum_size() {
return;
}

Size2 minsize = get_combined_minimum_size();
data.updating_last_minimum_size = false;
if (minsize != data.last_minimum_size) {
data.last_minimum_size = minsize;
_size_changed();
emit_signal(SceneStringNames::get_singleton()->minimum_size_changed);
}
}

void Control::update_minimum_size() {
ERR_MAIN_THREAD_GUARD;
if (!is_inside_tree() || data.block_minimum_size_adjust) {
return;
}

if (data.updating_last_minimum_size) {
return;
}
Expand Down Expand Up @@ -3140,7 +3139,6 @@ void Control::_notification(int p_notification) {
} break;

case NOTIFICATION_POST_ENTER_TREE: {
data.minimum_size_valid = false;
data.is_rtl_dirty = true;
_size_changed();
} break;
Expand Down Expand Up @@ -3269,9 +3267,7 @@ void Control::_notification(int p_notification) {
get_viewport()->_gui_hide_control(this);
}
} else {
data.minimum_size_valid = false;
_update_minimum_size();
_size_changed();
}
} break;

Expand Down

0 comments on commit 594852c

Please sign in to comment.