summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuilherme Felipe <guilhermefelipecgs@gmail.com>2018-06-30 21:36:54 -0300
committerGuilherme Felipe <guilhermefelipecgs@gmail.com>2018-07-01 09:48:03 -0300
commitb2e78e117ca5560f5b9290b2f333d054b9756a3e (patch)
treea29dc554393dee75a4902c648c5649b9f1461bf0
parent3852c5f8a0b439a8c0c6e72433d6fe82e3e596de (diff)
Fix performance for godot's interface
-rw-r--r--scene/gui/control.cpp9
-rw-r--r--scene/gui/item_list.cpp1
2 files changed, 9 insertions, 1 deletions
diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp
index 18a0cd13d9..6ef8016dd5 100644
--- a/scene/gui/control.cpp
+++ b/scene/gui/control.cpp
@@ -160,9 +160,16 @@ void Control::_update_minimum_size_cache() {
Size2 minsize = get_minimum_size();
minsize.x = MAX(minsize.x, data.custom_minimum_size.x);
minsize.y = MAX(minsize.y, data.custom_minimum_size.y);
+
+ bool size_changed = false;
+ if (data.minimum_size_cache != minsize)
+ size_changed = true;
+
data.minimum_size_cache = minsize;
data.minimum_size_valid = true;
- minimum_size_changed();
+
+ if (size_changed)
+ minimum_size_changed();
}
Size2 Control::get_combined_minimum_size() const {
diff --git a/scene/gui/item_list.cpp b/scene/gui/item_list.cpp
index 57b9a9a11b..72ed0e9b81 100644
--- a/scene/gui/item_list.cpp
+++ b/scene/gui/item_list.cpp
@@ -942,6 +942,7 @@ void ItemList::_notification(int p_what) {
}
}
+ minimum_size_changed();
shape_changed = false;
}