summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessandro <alessandroperelli30@gmail.com>2018-05-08 18:38:14 +0200
committerAlessandro <alessandroperelli30@gmail.com>2018-05-08 18:38:14 +0200
commit4966bb5c67590465a6588c43a903f895a0987f5f (patch)
treeef27bdf48a87bfe508b4b1df64139bd9435bbb05
parentb190afe0847cef449b094469ad50b0c8e3ca1350 (diff)
Fix actions unfold in Input Map when events are modified
-rw-r--r--editor/project_settings_editor.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/editor/project_settings_editor.cpp b/editor/project_settings_editor.cpp
index a4265b4e32..24081279ea 100644
--- a/editor/project_settings_editor.cpp
+++ b/editor/project_settings_editor.cpp
@@ -382,6 +382,7 @@ void ProjectSettingsEditor::_show_last_added(const Ref<InputEvent> &p_event, con
while (child) {
Variant input = child->get_meta("__input");
if (p_event == input) {
+ r->set_collapsed(false);
child->select(0);
found = true;
break;
@@ -656,6 +657,14 @@ void ProjectSettingsEditor::_update_actions() {
if (setting)
return;
+ Map<String, bool> collapsed;
+
+ if (input_editor->get_root() && input_editor->get_root()->get_children()) {
+ for (TreeItem *item = input_editor->get_root()->get_children(); item; item = item->get_next()) {
+ collapsed[item->get_text(0)] = item->is_collapsed();
+ }
+ }
+
input_editor->clear();
TreeItem *root = input_editor->create_item();
input_editor->set_hide_root(true);
@@ -681,6 +690,8 @@ void ProjectSettingsEditor::_update_actions() {
item->set_editable(0, true);
}
item->set_custom_bg_color(0, get_color("prop_subsection", "Editor"));
+ if (collapsed.has(name))
+ item->set_collapsed(collapsed[name]);
Dictionary action = ProjectSettings::get_singleton()->get(pi.name);
Array events = action["events"];