浏览代码

Merge pull request #9471 from volzhs/visibility-changes

Update visibility icon properly
Rémi Verschelde 8 年之前
父节点
当前提交
afbb5261e6
共有 2 个文件被更改,包括 6 次插入9 次删除
  1. 1 1
      editor/scene_tree_editor.cpp
  2. 5 8
      scene/3d/spatial.cpp

+ 1 - 1
editor/scene_tree_editor.cpp

@@ -472,7 +472,7 @@ void SceneTreeEditor::_node_visibility_changed(Node *p_node) {
 void SceneTreeEditor::_update_visibility_color(Node *p_node, TreeItem *p_item) {
 	if (p_node->is_class("CanvasItem") || p_node->is_class("Spatial")) {
 		Color color(1, 1, 1, 1);
-		bool visible_on_screen = p_node->call("is_visible");
+		bool visible_on_screen = p_node->call("is_visible_in_tree");
 		if (!visible_on_screen) {
 			color = Color(0.6, 0.6, 0.6, 1);
 		}

+ 5 - 8
scene/3d/spatial.cpp

@@ -541,10 +541,7 @@ void Spatial::show() {
 	if (!is_inside_tree())
 		return;
 
-	if (!data.parent || is_visible_in_tree()) {
-
-		_propagate_visibility_changed();
-	}
+	_propagate_visibility_changed();
 }
 
 void Spatial::hide() {
@@ -552,14 +549,14 @@ void Spatial::hide() {
 	if (!data.visible)
 		return;
 
-	bool was_visible = is_visible_in_tree();
 	data.visible = false;
 
-	if (!data.parent || was_visible) {
+	if (!is_inside_tree())
+		return;
 
-		_propagate_visibility_changed();
-	}
+	_propagate_visibility_changed();
 }
+
 bool Spatial::is_visible_in_tree() const {
 
 	const Spatial *s = this;