Browse Source

Don't hide/show top editor if they did not change, fixes #26644

Juan Linietsky 6 years ago
parent
commit
6eac688952
2 changed files with 16 additions and 4 deletions
  1. 14 2
      editor/editor_node.cpp
  2. 2 2
      editor/plugins/shader_editor_plugin.cpp

+ 14 - 2
editor/editor_node.cpp

@@ -1454,9 +1454,21 @@ void EditorNode::edit_item(Object *p_object) {
 	}
 
 	if (!sub_plugins.empty()) {
-		_display_top_editors(false);
 
-		_set_top_editors(sub_plugins);
+		bool same = true;
+		if (sub_plugins.size() == editor_plugins_over->get_plugins_list().size()) {
+			for (int i = 0; i < sub_plugins.size(); i++) {
+				if (sub_plugins[i] != editor_plugins_over->get_plugins_list()[i]) {
+					same = false;
+				}
+			}
+		} else {
+			same = false;
+		}
+		if (!same) {
+			_display_top_editors(false);
+			_set_top_editors(sub_plugins);
+		}
 		_set_editing_top_editors(p_object);
 		_display_top_editors(true);
 	} else {

+ 2 - 2
editor/plugins/shader_editor_plugin.cpp

@@ -355,8 +355,8 @@ void ShaderEditor::_menu_option(int p_option) {
 void ShaderEditor::_notification(int p_what) {
 
 	if (p_what == NOTIFICATION_VISIBILITY_CHANGED) {
-		if (is_visible_in_tree())
-			shader_editor->get_text_edit()->grab_focus();
+		//if (is_visible_in_tree())
+		//	shader_editor->get_text_edit()->grab_focus();
 	}
 }