فهرست منبع

Merge pull request #44831 from gongpha/dont-update-tree-if-selected

Blocking updating in SceneTreeEditor when an item was selected
Rémi Verschelde 4 سال پیش
والد
کامیت
605e33cf39
3فایلهای تغییر یافته به همراه9 افزوده شده و 0 حذف شده
  1. 4 0
      editor/scene_tree_editor.cpp
  2. 4 0
      scene/gui/tree.cpp
  3. 1 0
      scene/gui/tree.h

+ 4 - 0
editor/scene_tree_editor.cpp

@@ -540,6 +540,10 @@ void SceneTreeEditor::_update_tree(bool p_scroll_to_selected) {
 		return;
 	}
 
+	if (tree->is_editing()) {
+		return;
+	}
+
 	updating_tree = true;
 	tree->clear();
 	if (get_scene_node()) {

+ 4 - 0
scene/gui/tree.cpp

@@ -3013,6 +3013,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) {

+ 1 - 0
scene/gui/tree.h

@@ -604,6 +604,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);