summaryrefslogtreecommitdiffstats
path: root/scene/gui/aspect_ratio_container.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scene/gui/aspect_ratio_container.cpp')
-rw-r--r--scene/gui/aspect_ratio_container.cpp19
1 files changed, 4 insertions, 15 deletions
diff --git a/scene/gui/aspect_ratio_container.cpp b/scene/gui/aspect_ratio_container.cpp
index 94240ccead..1663a7d602 100644
--- a/scene/gui/aspect_ratio_container.cpp
+++ b/scene/gui/aspect_ratio_container.cpp
@@ -35,19 +35,12 @@
Size2 AspectRatioContainer::get_minimum_size() const {
Size2 ms;
for (int i = 0; i < get_child_count(); i++) {
- Control *c = Object::cast_to<Control>(get_child(i));
+ Control *c = as_sortable_control(get_child(i));
if (!c) {
continue;
}
- if (c->is_set_as_top_level()) {
- continue;
- }
- if (!c->is_visible()) {
- continue;
- }
Size2 minsize = c->get_combined_minimum_size();
- ms.width = MAX(ms.width, minsize.width);
- ms.height = MAX(ms.height, minsize.height);
+ ms = ms.max(minsize);
}
return ms;
}
@@ -108,13 +101,10 @@ void AspectRatioContainer::_notification(int p_what) {
bool rtl = is_layout_rtl();
Size2 size = get_size();
for (int i = 0; i < get_child_count(); i++) {
- Control *c = Object::cast_to<Control>(get_child(i));
+ Control *c = as_sortable_control(get_child(i));
if (!c) {
continue;
}
- if (c->is_set_as_top_level()) {
- continue;
- }
// Temporary fix for editor crash.
TextureRect *trect = Object::cast_to<TextureRect>(c);
@@ -144,8 +134,7 @@ void AspectRatioContainer::_notification(int p_what) {
} break;
}
child_size *= scale_factor;
- child_size.x = MAX(child_size.x, child_minsize.x);
- child_size.y = MAX(child_size.y, child_minsize.y);
+ child_size = child_size.max(child_minsize);
float align_x = 0.5;
switch (alignment_horizontal) {