summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--editor/scene_tree_editor.cpp4
-rw-r--r--scene/gui/tree.cpp4
-rw-r--r--scene/gui/tree.h1
3 files changed, 9 insertions, 0 deletions
diff --git a/editor/scene_tree_editor.cpp b/editor/scene_tree_editor.cpp
index b8475656ee..7a9e0f7a3c 100644
--- a/editor/scene_tree_editor.cpp
+++ b/editor/scene_tree_editor.cpp
@@ -531,6 +531,10 @@ void SceneTreeEditor::_update_tree() {
return;
}
+ if (tree->is_editing()) {
+ return;
+ }
+
updating_tree = true;
tree->clear();
if (get_scene_node()) {
diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp
index a968a83dad..5d5770897e 100644
--- a/scene/gui/tree.cpp
+++ b/scene/gui/tree.cpp
@@ -2981,6 +2981,10 @@ bool Tree::edit_selected() {
return false;
}
+bool Tree::is_editing() {
+ return popup_editor->is_visible();
+}
+
Size2 Tree::get_internal_min_size() const {
Size2i size = cache.bg->get_offset();
if (root) {
diff --git a/scene/gui/tree.h b/scene/gui/tree.h
index dfc02f760d..6db8d3f5bc 100644
--- a/scene/gui/tree.h
+++ b/scene/gui/tree.h
@@ -622,6 +622,7 @@ public:
int get_item_offset(TreeItem *p_item) const;
Rect2 get_item_rect(TreeItem *p_item, int p_column = -1) const;
bool edit_selected();
+ bool is_editing();
// First item that starts with the text, from the current focused item down and wraps around.
TreeItem *search_item_text(const String &p_find, int *r_col = nullptr, bool p_selectable = false);