Merge pull request #15152 from poke1024/editor-settings-change

Only send editor "settings_changed" if actually changed
This commit is contained in:
Noshyaar 2018-01-01 18:48:33 +07:00 committed by GitHub
commit 2154f82302
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -75,20 +75,33 @@ bool EditorSettings::_set(const StringName &p_name, const Variant &p_value, bool
return true;
}
bool changed = false;
if (p_value.get_type() == Variant::NIL) {
props.erase(p_name);
if (props.has(p_name)) {
props.erase(p_name);
changed = true;
}
} else {
if (props.has(p_name))
props[p_name].variant = p_value;
else
if (props.has(p_name)) {
if (p_value != props[p_name].variant) {
props[p_name].variant = p_value;
changed = true;
}
} else {
props[p_name] = VariantContainer(p_value, last_order++);
changed = true;
}
if (save_changed_setting) {
props[p_name].save = true;
if (props[p_name].save != true) {
props[p_name].save = true;
changed = true;
}
}
}
if (p_emit_signal) {
if (changed && p_emit_signal) {
emit_signal("settings_changed");
}
return true;