Skip to content

Commit b97110c

Browse files
authored
Merge pull request godotengine#93908 from Geometror/ge-resized-fix
Fix `Control` nodes emitting unnecessary `resized` signals
2 parents c9ca3aa + 1c47fd7 commit b97110c

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

scene/gui/control.cpp

+11-9
Original file line numberDiff line numberDiff line change
@@ -1732,11 +1732,15 @@ void Control::_size_changed() {
17321732
new_size_cache.height = minimum_size.height;
17331733
}
17341734

1735-
bool pos_changed = new_pos_cache != data.pos_cache;
1736-
bool size_changed = new_size_cache != data.size_cache;
1735+
bool pos_changed = !new_pos_cache.is_equal_approx(data.pos_cache);
1736+
bool size_changed = !new_size_cache.is_equal_approx(data.size_cache);
17371737

1738-
data.pos_cache = new_pos_cache;
1739-
data.size_cache = new_size_cache;
1738+
if (pos_changed) {
1739+
data.pos_cache = new_pos_cache;
1740+
}
1741+
if (size_changed) {
1742+
data.size_cache = new_size_cache;
1743+
}
17401744

17411745
if (is_inside_tree()) {
17421746
if (pos_changed || size_changed) {
@@ -1751,12 +1755,10 @@ void Control::_size_changed() {
17511755
}
17521756

17531757
if (pos_changed && !size_changed) {
1754-
_update_canvas_item_transform(); //move because it won't be updated
1755-
}
1756-
} else {
1757-
if (pos_changed) {
1758-
_notify_transform();
1758+
_update_canvas_item_transform();
17591759
}
1760+
} else if (pos_changed) {
1761+
_notify_transform();
17601762
}
17611763
}
17621764

0 commit comments

Comments
 (0)