Update visibility icon properly

This commit is contained in:
volzhs 2017-07-03 00:27:27 +09:00
parent bb6e73f9c1
commit 6ed2b0eabc
2 changed files with 6 additions and 9 deletions

View file

@ -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);
}

View file

@ -541,10 +541,7 @@ void Spatial::show() {
if (!is_inside_tree())
return;
if (!data.parent || is_visible_in_tree()) {
_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();
}
}
bool Spatial::is_visible_in_tree() const {
const Spatial *s = this;