summaryrefslogtreecommitdiff
path: root/editor
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2017-11-27 13:04:20 +0100
committerGitHub <noreply@github.com>2017-11-27 13:04:20 +0100
commit17b4f43e0e0a16d27bd769cab854e2be5e26833f (patch)
tree755ed27e9a273c09f2e308778641d01d3af393d9 /editor
parent6aa331e5812ce48aa30ea08ed1adc598c9e5b4f6 (diff)
parentb8b5bb657767698b5864356fb2549ee9681f1bd6 (diff)
Merge pull request #13308 from Krakean/scenetreedock_additemsdeselect
Scene Tree Dock: added ability to deselect items when clicking on empty space
Diffstat (limited to 'editor')
-rw-r--r--editor/scene_tree_editor.cpp8
-rw-r--r--editor/scene_tree_editor.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/editor/scene_tree_editor.cpp b/editor/scene_tree_editor.cpp
index dfda8a780d..2c0981ca30 100644
--- a/editor/scene_tree_editor.cpp
+++ b/editor/scene_tree_editor.cpp
@@ -481,6 +481,12 @@ void SceneTreeEditor::_selected_changed() {
blocked--;
}
+void SceneTreeEditor::_deselect_items() {
+
+ // Clear currently elected items in scene tree dock.
+ editor_selection->clear();
+}
+
void SceneTreeEditor::_cell_multi_selected(Object *p_object, int p_cell, bool p_selected) {
TreeItem *item = Object::cast_to<TreeItem>(p_object);
@@ -929,6 +935,7 @@ void SceneTreeEditor::_bind_methods() {
ClassDB::bind_method("_update_tree", &SceneTreeEditor::_update_tree);
ClassDB::bind_method("_node_removed", &SceneTreeEditor::_node_removed);
ClassDB::bind_method("_selected_changed", &SceneTreeEditor::_selected_changed);
+ ClassDB::bind_method("_deselect_items", &SceneTreeEditor::_deselect_items);
ClassDB::bind_method("_renamed", &SceneTreeEditor::_renamed);
ClassDB::bind_method("_rename_node", &SceneTreeEditor::_rename_node);
ClassDB::bind_method("_test_update_tree", &SceneTreeEditor::_test_update_tree);
@@ -1005,6 +1012,7 @@ SceneTreeEditor::SceneTreeEditor(bool p_label, bool p_can_rename, bool p_can_ope
tree->connect("item_edited", this, "_renamed", varray(), CONNECT_DEFERRED);
tree->connect("multi_selected", this, "_cell_multi_selected");
tree->connect("button_pressed", this, "_cell_button_pressed");
+ tree->connect("nothing_selected", this, "_deselect_items");
//tree->connect("item_edited", this,"_renamed",Vector<Variant>(),true);
error = memnew(AcceptDialog);
diff --git a/editor/scene_tree_editor.h b/editor/scene_tree_editor.h
index 1114b92796..88d60f9b8a 100644
--- a/editor/scene_tree_editor.h
+++ b/editor/scene_tree_editor.h
@@ -78,6 +78,7 @@ class SceneTreeEditor : public Control {
TreeItem *_find(TreeItem *p_node, const NodePath &p_path);
void _notification(int p_what);
void _selected_changed();
+ void _deselect_items();
void _rename_node(ObjectID p_node, const String &p_name);
void _cell_collapsed(Object *p_obj);