summaryrefslogtreecommitdiff
path: root/scene/gui/control.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scene/gui/control.cpp')
-rw-r--r--scene/gui/control.cpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp
index aa59df6337..943ba8dfb1 100644
--- a/scene/gui/control.cpp
+++ b/scene/gui/control.cpp
@@ -1585,14 +1585,25 @@ void Control::set_anchor_and_offset(Side p_side, real_t p_anchor, real_t p_pos,
}
void Control::_set_anchors_layout_preset(int p_preset) {
- set_meta("_edit_layout_mode", (int)LayoutMode::LAYOUT_MODE_ANCHORS);
+ bool list_changed = false;
+
+ if (has_meta("_edit_layout_mode") && (int)get_meta("_edit_layout_mode") != (int)LayoutMode::LAYOUT_MODE_ANCHORS) {
+ list_changed = true;
+ set_meta("_edit_layout_mode", (int)LayoutMode::LAYOUT_MODE_ANCHORS);
+ }
if (p_preset == -1) {
- set_meta("_edit_use_custom_anchors", true);
- notify_property_list_changed();
+ if (!has_meta("_edit_use_custom_anchors") || !(bool)get_meta("_edit_use_custom_anchors")) {
+ set_meta("_edit_use_custom_anchors", true);
+ notify_property_list_changed();
+ }
return; // Keep settings as is.
}
- set_meta("_edit_use_custom_anchors", false);
+
+ if (!has_meta("_edit_use_custom_anchors") || (bool)get_meta("_edit_use_custom_anchors")) {
+ list_changed = true;
+ set_meta("_edit_use_custom_anchors", false);
+ }
LayoutPreset preset = (LayoutPreset)p_preset;
// Set correct anchors.
@@ -1625,7 +1636,9 @@ void Control::_set_anchors_layout_preset(int p_preset) {
// Select correct grow directions.
set_grow_direction_preset(preset);
- notify_property_list_changed();
+ if (list_changed) {
+ notify_property_list_changed();
+ }
}
int Control::_get_anchors_layout_preset() const {